![](/img/trans.png)
[英]Counting non-zero elements within each row and within each column of a 2D NumPy array
[英]How to assign all non-zero elements in each numpy column to a value in an array whose size is the same as the number of columns?
所以這有點拗口。 但這是我想要做的:
b = np.array([7,8,2,3])
a = np.array([[1, 1, 0, 1],
[0, 0, 1, 1],
[0, 1, 1, 0]])
*** The Magic Happens ***
array([[7, 8, 0, 3],
[0, 0, 2, 3],
[0, 8, 2, 0]])
我幾乎不認為有一個更快/更整潔的答案。 為其他人寫作以發現它有幫助。 正如評論中提到的@Mark,您可以通過a>0
找到非零元素,並將其乘以b
將通過重復行並將元素相乘來廣播b
到a
的形狀:
output = (a > 0) * b
另一種方法是:
a[a>0] = np.tile(b,(a.shape[0],1))[a>0]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.