Pythonのデータ分析を学ぶにはどうすればよいですか?

Python データ分析の基礎の全プロセスは次のとおりです (初心者、転勤、プログラミングの基礎なし、直接指導、追加リンクなし)

1. 学習

データ分析モジュールについては、Python の学習内容のすべてが必要なわけではありません (SQL についても同様)。つまり、プログラマほど多くのことを学ぶ必要はなく、また、Python の学習内容をすべて理解する必要があります。アプリケーションを促進するには統計知識が必要です。Python で実装するには回帰について知る必要があります。

ほとんどのコンテンツを完了するには追加の Baidu と学習が必要ですが、基本的には無料です

主な学習フレームワークには次のようなものがあります。

1. 基本的なプログラミング言語(入出力、ループなど)

2. データ分析関連ライブラリ(numpy、pandas、matplotlib)の使用

3. 統計理論の応用と事例分析

ワークフローにおいてPythonはツールであり、【既存データ】の場合は【ソフトウェアにデータを取り込む】、【分析結果を得るロジックを書く】、最後に【グラフや結論出力に可視化する】が主な機能です。

はっきり言っておきますが、Pythonは論理を継承するための単なるツールであり、それを学ぶことは論理を学ぶことではありません、剣のスキルのない剣を持っているのと同じですが、剣のスキルと剣のスキルは不可欠です。

2. プログラミング言語の基礎

プログラミング言語の基礎は新入生の必修科目です. 理工系以外の学生は触れないかもしれません(特に会計、ビジネス). [プログラムの考え方]を学び、コンピュータを厳密なものとして捉えることが重要です. [実行者、ツール、作業者] 論理的思考の文章を使用し、対話型インターフェイスを通じて自分の考えを出力させます。

1. 入力と出力

最も基本的なものは、対話型インターフェイスで print を出力すると、システムは入力した内容を出力します。

あなたが一言言えば、彼も一言言うでしょう。あなたが何を言っても、彼は言うでしょう。

>>>印刷(1) 

1    

>>> print("Hello World") 

こんにちは世界      

>>> a = 1  

>>> b = 'ルノブ'  

>>> プリント(a,b) 

1ルノブ

大量のデータが保存されているドキュメントなど、言いたいことがたくさんある場合は、Excel、csv、txt ファイルを用意し、read_csv や read_table などの関数を使用してこれらのドキュメントをインポートする必要があります。

data = pd.read_csv('ファイルパス/result.csv',sep=',') 

>>>印刷(データ) 

ファイルはPythonで書かれています

2. データ形式

コンピュータの場合、すべての [入力] を分類する必要があります。数値は単なる数値ではなく整数です。漢字や英語はすべて文字列です。さらに一歩近づくと、リスト型、マップ型、タプル型も分類されます。

さまざまなタイプにより、さまざまなニーズ、計算方法などに対応します。

データ型の概要:

数値: Int() 整数、float() 小数、bool() ブール型、complex() 複素数

文字列(str): テキスト、記号、文字、特殊文字などが含まれます。

一重引用符、二重引用符、三重一重引用符、および三重二重引用符は文字列です

複数行の印刷: 要素を出力するときの改行

単一行印刷: 同じ行に出力します。

リスト: 角括弧、カンマ区切りの要素でフォーマットされ、要素には数値、文字、またはその他のデータ型を使用できます。

例: [(1, 2), 'three', 'd', {'y': 0}]

タプル: 半括弧形式、要素は数値、文字、またはその他のデータ型にすることができます

例: ([1, 2], 'three', 'd', {'y': 0})

Dictionary : 中括弧の形式要素は相互に対応しており、クエリ関数、{key: value} キーは不変型である必要があり、value は反復可能を含む任意のデータ型 (整数、文字列、リスト、タプル、辞書) にすることができます。オブジェクト。不変型は文字列、タプルです。

例: {'a': 1, 'b': 2}

タイプが異なればルールも異なります。1 は + 2 にはできますが、+ Weihe にはできないことをご存知のとおり、相互に操作できるのは同じタイプのみです。

3. 変数を定義する

この段階では、いくつかの変数を自分で定義できます (データ型に注意してください)。

>>>名前 = 'ウェイヘ'

>>>印刷(名前)

>>>printint('タイプ',タイプ(名前))

>>>printint('値',名前)

出力結果:魏河

タイプ <クラス 'str'>

値威和

作業では多くの変数を定義する必要があります。たとえば、 a = 0 にする、 a = [] にする、それらを空の配列に等しくする、計算、ループ、さまざまな数値と結果の保存に使用します。

4. 算術演算子

これは最も基本的なロジックです。すでに変数の入力、変数の定義、変数の出力が可能です。リンクはすでに OK です。これで上記のとおりになり、それにロジックを追加する必要があります。

たとえば、ビジネス側があなたに「今日の注文と昨日の注文を合わせてほしい」という要求を出してきたとします。

写真

5、

関数という言葉は中学校で習いますが、「x は y に等しい」と入力します。最初の出力を含め、私たちが話している算術演算子も含めて、ソース コードの背後に関数があり、その関数を直接呼び出すことが呼び出しの背後にあるロジックです。

たとえば、文字列の長さを直接取得できる len() 関数を以前に学習しました。len() 関数がない場合、文字列の長さをどうやって取得するかを想像してみてはいかがでしょうか。

n=0 

「http://www.nowcoder.com/link/pc_kol_bzwh」の c の場合:    

n = n + 1 

印刷(n)>>>33

関数の本質は、特定の機能を備えた再利用可能なコードであり、このコードは事前に作成され、「素敵な」名前が付けられています。後続のプログラミングプロセスで同じ機能が必要な場合は、適切な名前を付けてこのコードを直接呼び出すことができます。

以下は、自己実装された len() 関数を関数にカプセル化する方法を示しています。

#カスタム len() 関数

def my_len(str):    

長さ = 0 

str の c の場合:       

長さ = 長さ + 1 

戻り長さ

#カスタム my_len() 関数を呼び出す

length = my_len("http://www.nowcoder.com/link/pc_kol_bzwh")

プリント(長さ)

#my_len() 関数を再度呼び出します

length = my_len("http://www.nowcoder.com/link/pc_kol_bzwh")

プリント(長さ)

過去 2 日間の順序と過去 2 年間の順序を計算するなど、関数内で加算、減算、乗算、除算を実現するには、毎日関数を呼び出すだけで済みます。

6. サイクル

ループとは比較的抽象的な点で、コンピュータがロジックを継続的に実行していると想像していただけますが、今回はロジックをインクリメントしたり、デクリメントしたり、さまざまな演算を行うことで、[累積和]などのロジックを実現することができます。

Python のループ文には while ループと for ループの 2 種類があります。

写真

追加 = "http://www.nowcoder.com/link/pc_kol_bzwh"

#for ループ、追加文字列を走査する

ch の追加: 

print(ch,end="")

操作の結果は次のようになります。

http://www.nowcoder.com/link/pc_kol_bzwh

私が独学で勉強していたときは、c よりもむしろ苦痛でした。この「ch」は非常に不規則です。一般に、ijk は c で書かれ、理解しやすいです。実際、ここでの ch は、c の ijk に似ています。つまり、文字列「add」をスキャンし、スキャンするたびに数値を記録し、それをthing chに記録し、最終的に出力するようなスキャンロボットがあります。

ループはさまざまな操作を行うことができ、さまざまな入力 (入力を文字列に変換し、プログラムを走査させます)、関数の結果をテストし、その結果を出力します (フィッティングのエラー値など、どちらを直接判断するかなど)。変数の方が適しています)

上記はプログラミング言語の基礎部分と言えますが、実際にはまだまだ多くの基礎があり、上記の知識を定着させるために、実践に役立つ最も基本的なアルゴリズム(累積和や加算の実現など)があります。これらは自分で完成させる必要があります(例えばif関数などだとわかりやすいです)

ここからは、Python ライブラリのデータ分析パッケージの実践を開始します (実際には、主に関数を呼び出すことです)。

2.データ分析Pythonライブラリ実践

1. よく使われるライブラリ

ライブラリは本のような関数の集合として見ることができ、インポート ライブラリ名はコンピュータにこの辞書を開くように命令するようなものです。

よく使用されるライブラリは主に 3 つあり、データ サイエンスを含めると 10 個のライブラリが存在する場合があります。

彼らです:

Pandas、Numpy (データの明確性、分析、探索、配列処理)、Scikit-learn、TensorFlow、Keras (機械学習ライブラリ)、Gradio (機械学習のデプロイメント)、SciPy、Statsmodels (統計ライブラリ)、matplotlib、Seaborn (視覚化)

一般的に言えば、Pandas、Numpy、Plotly を学習すれば十分です。

2. Numpy ライブラリ

Numpy は配列処理機能を強調しており、配列を各セルにデータを格納する Excel テーブルとみなすことができます。

上記の基本的なチュートリアルと組み合わせて、データが入ってきたら、そのデータを入れるためのボックスを準備する必要があります。これらのアクションに含まれる関数は次のとおりです。

(1) 配列の作成

写真

例えば:

import numpy as npa = np.array([1,2,3,4])b = np.array([,'点赞','分享','求关注'])print(a)

配列を操作できます (線形代数の論理を参照)。また、配列を使用して加算、減算、乗算、除算ができます。

配列間の数値の選択、基本的なインデックス付けとスライス、転置、三角演算はすべて Baidu で利用できます。それらの使用方法を知っていれば、配列に対するすべての数学演算を実現できます。

3. パンダの図書館

pandas ライブラリの利点は、さまざまな種類のデータ ソースの調整、時系列関数の統合、欠損データの柔軟な処理、他のデータベースに表示されるリレーショナル操作のマージです。

率直に言うと、numpy よりも柔軟性があり、パンダだけがニーズを満たすことができる場合もあります。

学習のアイデアは次のとおりです。

(1) シリーズと 2 つのデータ型に精通している

(2) 一般的に使用されるインデックス付け方法と

写真

(3) numpy などの論理学習アイデアのインデックス付け、選択、計算、フィルタリング

(4) データフレームを使用して実行できるいくつかの要約統計情報 (corr メソッド、cov メソッドなど) を紹介します。

(5) 欠損データの処理 (dropna\fillna\isnull\notnull などの関数を含む)

上記 2 つのライブラリは、関数を丸暗記するのではなく、配列の処理、配列の操作、配列の切り取りとインデックス付け、欠損値の埋め込み、並べ替えなどの機能を覚えておくのが最善です。

2 つのライブラリの主な機能は、基本的にデータの前処理に反映されます。ここから、統計が必要な場所にどんどん近づいていることを認識する必要があります。データが前処理された後、分析を行うことができます (後で)

3、マットポルトリブ

ニーズの 80% が Excel で満たされることは明らかです。Python を使用することは不可能ではありません。利点は、自由度が高く、チャートに近く、科学研究のスタイルであることです。欠点は、ほとんどの作業シナリオを満たしていないことです。自分でコードを作成します。一般に、データは ppt または Excel に入力され、そこで直接操作できるため、より効率的です。

写真

さっそく始めましょう

(1) 空のチャートを作成する

Figure と subplot はチャート オブジェクトを作成できます

fig = plt.figure()

ax1 = fig.add_subplot(2,2,1)

ここから、描画コマンドを発行できます。つまり、水平座標と垂直座標にデータを入力します。

(2)イメージを描く

form numpy. import randnplt.plot(randn(50).csmsum(),'k--')_= ax1.hist(randn(100),bins=20,color = 'k',alpha = 0.3)ax2.scatter(np.arange(30),np.arange(30)+3*randn(30))

写真

色、マーカー、線種、軸、間隔、縮尺、凡例、注釈など、イメージのすべてのパラメータが制御可能であることを知っておく必要があります。

では、なぜ科学研究に適しているのかというと、論文に必要な写真は数枚だけですが、仕事では 1 日に数枚の写真が必要になる可能性があり、そんなに早く書く時間がないからです。視覚化の内容を理解することができます。

(3) グラフの種類を理解する

折れ線グラフ:

シリーズ(np.random.randn(10).cumsum(),index =np.arange(0,100,10))

ヒストグラム:

data.polt(kind = 'bar',ax=axes[0],color='k',alpha = 0.7)

ヒストグラム: hist(ビン = 50)

円グラフ: plt.pie()

特別なトピック: データの集約とグループ化操作

SQLにはgroup by関数があり、Pythonでもそれができます。実際、基本的なデータ処理のほとんどはグループ化操作に属します。たとえば、[毎日] [すべての都市]の順序は、日付と日付をグループ化することです。街。さまざまなグループ化の結果は、ディメンション内のインジケーターの解体になります。

実際、Python のデータをグループ化する機能は SQL よりも強力ですが、データ処理効率では劣ります。Python での処理専用にデータをエクスポートする必要があるかどうかは、どこまでグループ化する必要があるかによって決まります。

最も基本的なグループ化関数は次のように表されます。

データ グループが 2 つの列のインジケーター data1&data2 であり、ディメンションが key1&ley2 であるとします。

グループ = df['data1'].groupby(dt['key']) 

生成されたグループは groupby オブジェクトであり、準備された grouper として理解でき、結果を出力するにはさまざまな集計関数と連携する必要があります。

例えば:

group.mean()

一緒に書くこともできます

平均 =df['data1'].groupby([df['key1'],df['key2']]).mean()

一般的に使用されるいくつかの集計関数は次のとおりです。

写真

特別なトピック: 時系列

Python の時系列は次のように要約できます: 時間関数処理 + 時間フォーマット データ、時系列の分布を完全に描写し、さまざまな操作を追加します。主なモジュールは次のとおりです: datetime、calendar

たとえば、現在時刻: now = datetime.now

datetime は時間をミリ秒単位で保存します。 delta = datatime(2022,12,14) - datatime(2022,12,1)

時間関数は文字列を使用して相互に変換することもできます。

例: 値 = '2022-12-24'

datetime.strptime(値,'%Y-%m-%d')

dateutil パッケージの parser.parse を使用して日付を解析することもできます。次に例を示します。

parse('2022-12-24')

出力: datetime.datetime(2022,12,24,0,0)

日時の形式定義

写真

時系列形式の変数は、実際には一連の時間に、1.1、1、1.2、レコード 2 などのさまざまな指標を加えたものです。

次のように定義できます。

日付 =

 [日時(2022,12,1),日時(2022,12,2),日時(2022,12,3),日時(2022,12,4),日時(2022,12,5),日時(2022, 12,6),日時(2022,12,7),日時(2022,12,8)] 

ts = シリーズ(np..randn(6),index = 日付) 

時系列の 2 つの列の系列変数が取得されます。

Python でできること: 固定日付範囲 (pd.date_range) の生成、固定日付量のオフセット (nowday = datetime(2022,12,1)+3*day()、日付データの移動など、すべて操作に属しますデータの前処理。

以上で、Python を使用してデータを処理できる作業の大部分は基本的に共有されました。多くの詳細はコードと Baidu を入力することで作成できます。最後に、実際のデータ分析作業では、データの処理と表示の部分を完了して、データを実行します。各種タスク・分析(グループ分けによる指標の分解、下降変動の可視化・発見など)

おすすめ

転載: blog.csdn.net/onebound_linda/article/details/131913497