簡體   English   中英

使用索引數組將值分配給numpy中的數組

[英]Using an index array to assign values to an array in numpy

我正在嘗試向量化此操作以加快運行時間。 要設置我的問題,請看以下代碼。

current_array=np.array([[2,3],[5,6],[34,0]])
ind =np.array([[0,1],[1,1],[0,0]])
new_vals=[99,77]

##do some magic
result = [[99,77],[77,77],[99,99]]

因此,我們有了當前數組,我想使用ind中的值將new_vals的值分配給current_array ,以便最終得到結果。

我有辦法做到這一點,但它使用了兩個循環,我想盡可能地加快速度。 現在我正在做以下

def set_image_vals(image,means,mins):
    for i in range(0,image.shape[0]):
        for j in range(0,image.shape[1]):
            image[i,j]=means[mins[i,j]]
    return image

其中image為current_array ,意味着為new_vals ,mins為ind。

有沒有更好的方法可以加快速度?

對於一般情況,這是最靈活,最快的:

>>> new_vals = np.array([99, 77])
>>> new_vals[ind]
array([[99, 77],
   [77, 77],
   [99, 99]])

在這里, new_vals可以包含兩個以上的元素,並且ind可以索引多達該數量的元素。

暫無
暫無

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

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