非常簡單的問題:我有一個具有多個列的結構化數組,我只想用另一個預先存在的數組填充其中的一部分(但不止一個)。numpy:如何一次填充結構化數組中的多個字段
這就是我想:
strc = np.zeros(4, dtype=[('x', int), ('y', int), ('z', int)])
x = np.array([2, 3])
strc[['x', 'y']][0] = x
這給了我這個未來的警告:
主要:1:FutureWarning:numpy的檢測到您(可能)寫通過numpy.diagonal或通過在記錄 陣列中選擇多個字段返回的數組 。此代碼會在將來的版本numpy的突破可能性 - 詳見numpy.diagonal或arrays.indexing參考文檔。 快速修復是製作一個明確的副本(例如,做 arr.diagonal()。copy()或arr [['f0','f1']]。copy())。
但即使這是一個警告,結構化數組不會被填充。到目前爲止,我遍歷兩個數組超過和它的作品,但我想這是非常低效的。有沒有更好的辦法?
http://stackoverflow.com/questions/3058602/python-numpy-structured-array-recarray-assigning - 值 - 到 - 切片指出,試圖索引幾個領域會產生一個副本,而不是一個視圖。如果您正在使用比場更行的工作,有什麼不對迭代領域。 – hpaulj