计算一个numpy矩阵中有多少列包含所有正值

2024-03-29 02:26:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想检查numpy数组/矩阵中有多少列只有正值

我拿了我的矩阵,打印了A>0,得到了TrueFalse,然后我尝试了anyall函数,但没有成功

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

Tags: 函数innumpyfalsetruenpany矩阵
1条回答
网友
1楼 · 发布于 2024-03-29 02:26:58

此函数统计元素均大于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数组时,将行传递给函数。通过转置,数组将包含列

相关问题 更多 >