我試圖結合numpy數組切片和高級索引失敗。例如,我有填充有1/0的python Numpy結合切片和高級索引
r = np.array([0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0])
我找到非零元素的索引一個numpy的數組:
(nz,) = np.nonzero(r)
然後我想用非零個索引的陣列操作上我的數組r。對於r中的每個索引,我想在r中向前着色一個範圍(在下面的5個值中)。像 -
r[nz,:nz:nz+5] = 255
其給出結果:
陣列([0,0,255,255,0,255,0,0,255,0,255,0,0, 0, 0,0,0,0,0,0])
我會然而預料以下:
陣列([0,0,255,255,255,255,255,255,255, 255,255,255,255, 255,255,0,0,0,0,0])
給定我的索引[nz,:nz:nz + 5] = 255。我認爲這意味着從當前索引nz到nz + 5的設置值爲255.
我的目標是避免必須進行for-loop爲了效率的原因迭代數組。我對python和numpy比較陌生,所以我們歡迎所有的建議。
您可以使用示例輸入和預期輸出來編輯您的問題嗎? – Korem 2014-10-22 08:48:33
這是一個索引錯誤,只是在一些較舊的numpy版本中存在一個錯誤,它完全被允許。你有一個維度的兩個指標。 – seberg 2014-10-22 17:11:27