我有一個 n 維布爾 numpy 陣列。如何在每列之間應用邏輯 AND 運算。我想獲取僅包含行的行數。
例子:
n = np.array([[0, 0],
[1, 0],
[1, 1],
[0, 1],
[1, 0],
[0, 0],
[1, 1]]
)
在這里,結果應該是 2,因為只有第三行和最后一行只包含 1。
這可以通過functools模塊完成:
from functools import reduce
np.sum(reduce(np.logical_and, n.T))
但有沒有辦法只用 numpy 做到這一點?
uj5u.com熱心網友回復:
您可以使用.all(1)檢查and每一行,然后使用 np.sum() 進行計數,如下所示:
>>> res = n.all(1)
>>> res
array([False, False, True, False, False, False, True])
>>> res.sum()
2
uj5u.com熱心網友回復:
單獨使用Numpy的可能解決方案之一是:
np.sum(np.equal(n, 1).all(axis=1))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/344675.html
