圧倒的使い分け:pythonのlist , array , numpy.array , pandas.Seriese , pandas.DataFrame

今日はかずまなぶです。

Python でデータを処理するときにベクトルだったり行列だったり使うわけですが、じゃあどれを使ったらいいのかって迷ったことありませんか?私はいつも迷ってます。

そんな毎日に終止符を打つべく今回はしっかりと、まとめていきたいと思います。

私たちの選択肢は,

  1. list                             (Python標準の組み込み型 インポート不要)
  2. array.array              (Pythonの標準モジュール)
  3. numpy.array           (数値計算ライブラリ NumPy。行列演算)
  4. pandas.Series          (データベース分析ライブラリPandas。ベクトル)
  5. pandas.DataFrame(データベース分析ライブラリPandas。行列)

list

まずは、listを確認しましょう。

カンタンにデータの入れ物をつくるならlistは便利ですね。最も輝かしい使い方は、

for構文のインデックス番号として

使われることだと思います。

こんな応用もあります。よく使います。(zip , enumrate)

array.array

では次の、arrayモジュールの array.arrayを確認しましょう。

結論として、これは使う必要はありませんね。忘れましょう。

numpy.array

ここからが本番、numpy.array です。

行列演算をするなら

これで決まり。

pandas.DataFrame

いよいよpandasです。pandas.Seriesはぶっちゃけ要らないです。なので飛ばして、pandas.DataFrameを確認しましょう。データの取り込み、表計算やSQLのような使い勝手です。時系列処理、文字列と数値が混ざっているデータでも処理できます。データの欠損があっても取り込めますし、除去することもできます。

まさに、データベース分析ライブラリ。

pandas.DataFrameはデータの取り込みと成形は得意ですが、演算はそれほどではなさそうです。演算はnumpy.narrayに任せましょう。

まとめ

  • それぞれの得意分野を明らかにしました。
  • array.array と pandas.Series の存在は忘れましょう。
  • データの操作は、以下のような順番が良いと考えます。
  1. pandas.read_csv(“ファイル名.csv”,index_col=0) でデータフレームとして取り込む。
  2. pandasでデータフレームを成形する。
  3. データフレームからnumpy.arrayに変換して、演算する。
  4. 結果を再びpandasのデータフレームに変換する。

本日も最後まで見ていただきまして誠にありがとうございます。

(‘ω’)かず まなぶ

次回からは、取り込んだデータを整形するというテーマでpandas.DataFrameを深掘りしていきましょう。