读取 CSV 文件
可用的三个主要功能(手册页中的描述):
fromfile
- 一种使用已知数据类型读取二进制数据的高效方法,以及解析简单格式化的文本文件。使用 tofile 方法写入的数据可以使用此函数读取。
genfromtxt
- 从文本文件加载数据,并按指定处理缺失值。超过第一个 skip_header 行的每一行将以分隔符分割,并且将丢弃注释字符后面的字符。
loadtxt
- 从文本文件加载数据。文本文件中的每一行必须具有相同数量的值。
genfromtxt
是 loadtxt
的包装函数。genfromtxt
是最直接使用的,因为它有许多参数来处理输入文件。
给定一个输入文件,myfile.csv
的内容为:
#descriptive text line to skip
1.0, 2, 3
4, 5.5, 6
import numpy as np
np.genfromtxt('path/to/myfile.csv',delimiter=',',skiprows=1)
给出一个数组:
array([[ 1. , 2. , 3. ],
[ 4. , 5.5, 6. ]])
1 2.0000 buckle_my_shoe
3 4.0000 margery_door
import numpy as np
np.genfromtxt('filename', dtype= None)
array([(1, 2.0, 'buckle_my_shoe'), (3, 4.0, 'margery_door')],
dtype=[('f0', '<i4'), ('f1', '<f8'), ('f2', '|S14')])
注意 dtype=None
的使用导致重新排列。
列数不一致:
file:1 2 3 4 5 6 7 8 9 10 11 22 13 14 15 16 17 18 19 20 21 22 23 24
result=np.fromfile(path_to_file,dtype=float,sep="\t",count=-1)