我有一個二維矩陣
matrix = np.array([[1,2],[3,4],[5,6]])
index = np.array([0, 1, 1])
add_value = np.array([1, 2, 3])
我想將 add_value 添加到矩陣,但只添加到索引串列中與索引對應的元素。比如add_value中的1應該和[1,2]中的第一個元素相加,也就是1,結果是2。所以輸出應該是
np.array([[2,2],[3,6],[5,9]])
uj5u.com熱心網友回復:
for i, x in enumerate(add_value):
matrix[i][index[i]] = x
uj5u.com熱心網友回復:
使用簡單的多維索引:
matrix[np.arange(matrix.shape[0]), index] = add_value
或使用 python 內置:
matrix[tuple(zip(*enumerate(index)))] = add_value
輸出:
array([[2, 2],
[3, 6],
[5, 9]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/410459.html
標籤:
上一篇:如何在C 中列印剩余的一組數字?
