我有几个数据数字文件,其中小数点分隔符是逗号。因此,我使用一个lambda函数进行转换:
import numpy as np
def decimal_converter(num_cols):
conv = dict((col, lambda valstr: \
float(valstr.decode('utf-8').replace(',', '.'))) for col in range(nb_cols))
return conv
data = np.genfromtxt("file.csv", converters = decimal_converter(3))
文件中的数据如下:
0; 0,28321815; 0,5819178
1; 0,56868281; 0,85621369
2; 0,24022026; 0,53490058
3; 0,63641921; 0,0293904
4; 0,65585546; 0,55913776
在我的函数 decimal_converter
中,我需要指定文件包含的列数。通常情况下,我不需要在numpy.genfromtxt
中指定文件中的列数,它会读取所有的列数。即使使用转换器选项,我也希望保留此功能。
nb_cols
出现了一个NameError
,应该是num_cols
(对不起,我不能编辑两个字符,呃!) - Ghanima