我正在尝试使用以下行读取 CSV:
raw_data = genfromtxt(datafile,delimiter='\t',dtype=None)
OK,这个函数在遇到数据文件中的字符串数据时,将这个文件读入Record Array。据我了解,当 dtype 为 None 时,文件也应该读入 Record Array。那是对的吗?
但是,如果没有字符串数据并且只显示数字数据,则此函数将数据读入 ndarray。
如果没有,是否有一种方便的方法可以强制此函数将文件读取为记录数组?
ndarray 的问题是我所有的代码都是为了处理记录数组而构建的。
UPD1 以防万一有人尝试这样做,这里有一个简短的解决方案。可能这个不是最好的,但至少它有效:
从 csv 读取文件作为 ndarray
raw_data = genfromtxt(datafile,delimiter='\t',dtype=None)
为列生成默认名称和数据类型:
names_=['f'+str(i) for i in range(raw_data.shape[1])];
names=[(name,raw_data.dtype) for name in names_];
最后,创建记录数组:
raw_data_as_ra = raw_data.ravel().view(names);