Pythonのファイル入出力は,pandasを利用するのが簡単です.
読み込みの例題に使うCSVファイルは下記のものです.
data.csv
x, y
0, 0
0.02, 0.0102626
0.04, 0.0235473
0.06, 0.0361074
0.08, 0.049341
0.1, 0.0620651
目次
pandasのインストール
pip install pandas
使い方
CSVを読み込む
import pandas as pd
def main():
df = pd.read_csv('data.csv')
print(df)
if __name__ == "__main__":
main()
python3 main.py
x y
0 0.00 0.000000
1 0.02 0.010263
2 0.04 0.023547
3 0.06 0.036107
4 0.08 0.049341
5 0.10 0.062065
TextIOWrapperを直接渡す場合は注意が必要です.
Open済みのTextIOWrapperを直接Pandasの引数とする場合,注意が必要です.
read_csvにより,ファイルポインタが最終行に移動するため,再度読み込む場合に正常に読み込めません.
seek(0)でファイルポインタを先頭行まで移動する必要があります.
- ダメな例
def get_numpy_array_from_csv(csv: TextIOWrapper) -> np.ndarray:
arr = pd.read_csv(csv)
return arr.values
- 正しい例
def get_numpy_array_from_csv(csv: TextIOWrapper) -> np.ndarray:
csv.seek(0)
arr = pd.read_csv(csv)
return arr.values
読み込んだCSVをnumpy配列に変換
import pandas as pd
def main():
df = pd.read_csv('data.csv')
array = df.to_numpy()
print(array)
if __name__ == "__main__":
main()
python3 main.py
[[0.02 0.0102626]
[0.04 0.0235473]
[0.06 0.0361074]
[0.08 0.049341 ]
[0.1 0.0620651]]
リンク