【发布时间】:2014-05-23 03:29:23
【问题描述】:
我有几个数据数字文件,其中小数点分隔符是逗号。所以我用一个 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 文件中的列数,它会占用它找到的所有内容。即使使用转换器选项,我也想保留此功能。
【问题讨论】:
-
有一个
NameError和nb_cols,应该是num_cols(抱歉,我不能编辑两个字符,嗯!)
标签: python file-io numpy converter genfromtxt