簡體   English   中英

根據條件將 numpy 子數組添加到 numpy 數組

[英]add numpy subarray to numpy array based on condition

我有一個 2d numpy 數組和一個 2d numpy 子數組,我想根據條件將其添加到原始數組。 我知道您可以像這樣將 2d 子數組添加到數組中:

original_array[start_x:end_x, start_y:end_y] = sub_array 

但我不知道如何有效地只添加大於 0 的 sub_array 值?

例子:

orginal_array = np.array([2,2],[2,2],[2,2],[2,2])
sub_array = np.array([0,0],[1,1],[0,1],[0,0])
expected_result = np.array([2,2], [1,1], [2,1], [2,2])

您可以根據條件>,< 0進行索引並添加 arrays。

orginal_array * (sub_array <= 0) + sub_array * (sub_array > 0)

array([[2, 2],
       [1, 1],
       [2, 1],
       [2, 2]])

另一種方法是使用np.where function 作為:

np.where(sub_array > 0, sub_array, original_array)

Output:

array([[2, 2], 
       [1, 1], 
       [2, 1], 
       [2, 2]])

嘗試,

sub_array2 = np.select([sub_array>0],[sub_array])
original_array[start_x:end_x, start_y:end_y] = sub_array2 

暫無
暫無

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

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