我有一个使用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吗?有没有更简单的方法?