我想從某些字段獲取信息,並使用列表將其寫入另一個變量。如何使用結構化數據填充多個命名字段
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