[英]Count number of elements in each row equal to the first element in each row
a = np.array((['1', '1', '1', '2'],
['3', '3', '3', '3'],
['2', '1', '1', '2'],
['1', '3', '1', '2']))
我正在尋找一種方法(而不是遍歷數組)來計算每行中等於該行第一個元素的元素數。 即在第一行中,第一個元素是'1'
,並且該值還有2
次出現。 最后的結果應該是:
result = [2, 3, 1, 1]
我的數組可能非常大,因此遍歷每一行會很慢。
您可以使用列表理解來做到這一點:
result = [list(a[i,:]).count(a[i,0])-1 for i in range(a.shape[0])]
print(result)
這給了我:
[2, 3, 1, 1]
與切片a[..., 0]
進行比較。 Append 一個新軸,使其再次具有正確的尺寸。
result = (a == a[..., 0][..., np.newaxis]).sum(axis=-1) - 1
...
確保這適用於任何維度的 arrays,而使用:
僅適用於 2D。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.