我想从某些字段获取信息,并使用列表将其写入另一个变量。如何使用结构化数据填充多个命名字段
import numpy as np
var1 = np.array([(1,2,3,4),(11,22,33,44),(111,222,333,444)], dtype=([('field1', 'int32'),('field2','int32'),('field3','int32'),('field4','int32')]))
var2 = np.empty((1), dtype = ([('field1', 'int32'),('field2','int32'),('field5','int32'),('field6','int32')]))
myList = ['field1', 'field2']
我想写第一和第二个字段的值和第一行到var2。我尝试以下方法:
var2[(myList)] = var1[(myList)][0]
,但我得到了以下错误:
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
我想什么来达到同样的,如果我执行:
var2['field1'] = var1['field1'][0]
var2['field2'] = var1['field2'][0]
我怎么能做到这一点的为了能够使用更高的列表执行此操作,避免在列表中进行for循环?
我已经厌倦了这种方式,但我认为这将是一种更有效的方式......无论如何谢谢! – Xesc
我可以搜索'numpy''github'的问题,看看有没有人试图将这个添加到结构化数组__setitem__'方法。 – hpaulj
由于所有字段都是整数,因此可以将这些数组视为常规1或2d数组,并使用数字索引。 – hpaulj