Python 计算一个numpy矩阵中有多少列包含所有正值
我想检查numpy数组/矩阵中有多少列只有正值 我拿了我的矩阵,打印了Python 计算一个numpy矩阵中有多少列包含所有正值,python,numpy,Python,Numpy,我想检查numpy数组/矩阵中有多少列只有正值 我拿了我的矩阵,打印了A>0,得到了True和False,然后我尝试了any和all函数,但没有成功 In [55]: a = np.array([[13, 21, 12], [21, -1, 6], [ 1, 10, 2], [41, 1, 4]]) 输出应为2 我将矩阵A保存在B中,并尝试编写: B
A>0
,得到了True
和False
,然后我尝试了any
和all
函数,但没有成功
In [55]: a = np.array([[13, 21, 12],
[21, -1, 6],
[ 1, 10, 2],
[41, 1, 4]])
输出应为2
我将矩阵A
保存在B
中,并尝试编写:
B.all(axis=1).any()>0
此函数统计元素均大于0的列数:
def count(mat):
counter = 0
tmp = mat > 0
for col in tmp.T:
if all(col):
counter += 1
return counter
这个函数是如何工作的
首先,它为tmp分配一个布尔值矩阵,指示原始矩阵的对应值是否大于0,然后它迭代该矩阵的转置,并检查所有值是否都为真,这意味着它们都大于0
转置包含原始矩阵的列。创建numpy数组时,将行传递给函数。通过转置,数组将包含列。为什么输出?
(a>0).all(0).sum()
-->2
?