如何在np.genfromtxt()获得的NumPy的masked_array中添加列?

时间:2019-04-29 08:06:34

标签: python csv numpy genfromtxt masked-array

我有一个使用numpy.genfromtxt()来读取CSV文件的程序。现在,我需要在结果数据类型中添加列。

我已经发现genfromtxt()返回一维numpy.ndarray,其中包含类型为numpy.ma.core.mvoid的数据结构。我可以在这里很好地访问数据,但是不能追加或调整此mvoid的大小。

from io import StringIO

csvfilecontents = StringIO('''Time,Temp[°C],QC_Temp,Sal[PSU],QC_Sal,Chla[]
2017-06-01T00:00:00+00:00,7.8953,1,6.5534,1
2017-06-01T00:00:15+00:00,7.8943,1,6.5533,1
2017-06-01T00:00:30+00:00,7.8934,1,6.5532,1''')

colnames=['Time', 'Temp', 'QC_Temp', 'Sal', 'QC_Sal']
dtypes=['datetime64[s]', 'f8', 'i8', 'f8', 'i8']
d=np.genfromtxt(csvfilecontents, delimiter=',', skip_header=1, usemask=True, names=colnames, dtype=dtypes)

print ("d is of type {}".format(type(d)))
print ("d[0] is of type {}".format(type(d[0])))

d[0].append(0) # AttributeError: 'mvoid' object has no attribute 'append'
d[0][5] = 0    # Does not work

我应该如何使用mvoids?我应该使用.tolist()然后逐行将数据重建为另一个ndarray吗?有没有更简单的方法?

0 个答案:

没有答案