簡體   English   中英

基於一維索引數組將一維數組的值添加到二維數組

[英]Adding values of a 1D array to a 2D array based on a 1D array of indexes

我正在使用 numpy 並且遇到了障礙,我認為這是一個簡單的問題,可以使用索引來完成,但我仍然沒有弄清楚。 所以我有二維數組,從每一行我得到最小值的索引,我想要的是使用這個索引將值添加到二維數組,這里是一個例子

a = np.array([[9, 4, 9, 9],
              [1, 6, 4, 6],
              [8, 7, 1, 5],
              [8, 9, 2, 7]])

values = np.array([1, 2, 3, 4])

minimum = np.argmin(a, axis = 1) #To find the index of the minimum values

print(minimum) #minimum = [1, 0, 2, 2]

所以在二維數組的第一行和最小數組的第一個索引我想添加1的值,在二維數組的第二行使用第二個索引,我想添加2的值等等,我想要的 output 應該是這樣的。

output = [[9, 5, 9, 9],
          [3, 6, 4, 6],
          [8, 7, 4, 5],
          [8, 9, 6, 7]]

我試試這個,但我失敗了:

newarray = a[:, minimum] + values

newarray = [[ 5, 11, 12, 13],
            [ 7,  3,  7,  8],
            [ 8, 10,  4,  5],
            [10, 10,  5,  6]]

謝謝你的幫助!

你很親密。 嘗試這個:

newarray = a.copy()
newarray[np.arange(len(a)), minimum] += values

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM