将numpy.void转换为numpy.ndarray

时间:2018-10-30 14:53:04

标签: python arrays numpy

我已经用numpy.genfromtxt在python中加载了.csv文件。现在,它返回一维numpy.ndarray,其中包含numpy.void对象,该对象实际上只是整数数组。但是,我想将它们从类型numpy.void转换为numpy.array。要澄清:

>>> print(train_data.shape)
(42000,)
>>> print(type(train_data[0]))
<class 'numpy.void'>
>>> print(train_data[0])
(9, 0, 0)

因此,这里类型为numpy.void的数组(9,0,0)应该是numpy.array

如何将train_data中的所有值转换为numpy数组?

效率也很重要,因为我正在处理大量数据。

更多代码

>>> with open('filename.csv, 'rt') as raw_training_data:
>>>     train_data = numpy.genfromtxt(raw_training_data, delimiter=',', names=True, dtype=numpy.integer)
>>> print(train_data.dtype)
[('label', '<i4'), ('pixel0', '<i4'), ('pixel1', '<i4')]
>>> print(type(train_data))
<class 'numpy.ndarray'>

2 个答案:

答案 0 :(得分:0)

使用numpy.asarray()方法,该方法将输入转换为数组

array=numpy.asarray(train_data[0])

答案 1 :(得分:0)

我知道回答这个问题为时已晚。但是由于this question中提供的解决方案,找到了解决我遇到的类似问题的解决方案。 如果您可以将train_data转换为list,然后将其转换为numpy数组,那么将为您完成这项工作。

print(np.array(train_data.tolist()).shape)