最近、.csvファイルから画像抽出部分を実行していました。ファイルには、文字列として指定された48x48値のpixelsという名前の列が含まれていたため、通常は.csvファイルを表示して、pandas.read_csvを使用してピクセル列を後で画像に変換しようとしました。 、PIL画像に変換します。
import pandas as pd
data = pd.read_csv('fer2013.csv') # fer2013 competition dataset.
data.head()
emotion pixels Usage
0 0 70 80 82 72 58 58 60 63 54 58 60 48 89 115 121... Training
1 0 151 150 147 155 148 133 111 140 170 174 182 15... Training
2 2 231 212 156 164 174 138 161 173 182 200 106 38... Training
3 4 24 32 36 30 32 23 19 20 30 41 21 22 32 34 21 1... Training
4 6 4 0 0 0 0 0 0 0 0 0 0 0 3 15 23 28 48 50 58 84...
しかし、別の男がnumpy.genfromtxtを使用してディスカッションからcsvファイルをロードしているのを見ました。
data = np.genfromtxt('fer2013.csv',delimiter=',',dtype=None)
しかし、numpy.genfromtxtの使用法がわかりません。また、scipynumpy.genfromtxtのドキュメントにも例があります。
dtypeの命名方法は素晴らしいと思いましたが、pd.read_csvでも利用できます。
誰かがnumpy.genfromtxtロードメソッドの必要性と使用法を説明できれば、そしてそれがファイルを読み取るための他のメソッドに加えて利益を得ることができれば素晴らしいでしょう。
ここでデータを見つけることができます:fer2013コンペティションKaggle
私が理解しているように、パンダリーダーはCで記述された最適化されたプログラムであり、多くの状況で高速です。genfromtext
は、推論スキルが少ない古いPython関数であり、パンダを持っている場合は忘れることができます。
In [45]: df=pd.DataFrame(np.arange(10**6).reshape(1000,1000))
In [46]: df.to_csv("data.csv")
In [47]: %time v=np.genfromtxt("data.csv",delimiter=',',dtype=int,skip_header=1)
Wall time: 5.62 s
In [48]: %time u=pd.read_csv("data.csv",engine='python')
Wall time: 3.97 s
In [49]: %time u=pd.read_csv("data.csv")
Wall time: 781 ms
ドキュメントには記述engine
オプションを:
エンジン:{'c'、 'python'}、オプション
使用するパーサーエンジン。Cエンジンはより高速ですが、Pythonエンジンは現在より機能が充実しています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加