[英]Numpy - Find occurrences of elements in 1d array within a 2d array
我正在努力修復以下代碼:
import numpy as np
arr1 = np.array([2,15,132,135,136])
arr2 = np.array([[0,0,0,0,0], [2,15,132,307,406], [15,132,135,136,148]])
s1 = np.sum(np.all(arr1 == arr2[:, None], axis=1), axis=1)
print(s1)
我期待的結果是[0 3 4]
,以表明:
我得到的實際結果是[0 3 0]
有人可以幫助我理解這一點並幫助我修改代碼以產生所需的結果嗎?
>>> (arr1 == arr2[...,None]).sum(axis=(1, 2))
array([0, 3, 4])
您想為arr2
的最后一個軸進行廣播。 通過使用冒號而不是省略號,您可以在第一個軸之后添加新軸。
>>> arr2[:,None].shape
(3, 1, 5)
>>> arr2[...,None].shape # arr2[:,:,None] would also work
(3, 5, 1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.