NumPy - 使用genfromtxt从文件中解压缩具有不同dtypes的数据

时间:2014-10-10 13:55:55

标签: string csv numpy io

我正在尝试读取第1列是日期字符串的文件,第2-4列是常规浮点数。如果我做

data = np.genfromtxt("infile.csv", delimiter=','),

我在文件中得到一个4x行的数组,其中第1列中的所有值都是(非常正确)NaN。所以为了把我的日期作为字符串我试过

data = np.genfromtxt("infile.csv", delimiter=',', dtype=("|S20",float,float,float))

结果是一维数组,每行的所有四列现在都是数组的一个元素。

有人可以解释我做错了吗?

1 个答案:

答案 0 :(得分:1)

有更好的方法可以做到这一点,但是因为我们不知道你打算如何处理日期字符串快速(写入,而不是根据数据量运行)和脏的方式将是使用一些循环:

data_tup = tuple(np.empty(len(data), dtype=data.dtype[i]) for i in range(len(data[0])))
for i, line in enumerate(data):
    for j, item in enumerate(line):
        data_tup[j][i] = item

这将为您提供包含每列数据的ndarrays元组。