Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算一个numpy矩阵中有多少列包含所有正值_Python_Numpy - Fatal编程技术网

Python 计算一个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

我想检查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.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