【问题标题】:Count how many columns of a numpy matrix contain all positive values计算一个numpy矩阵有多少列包含所有正值
【发布时间】:2020-06-13 21:20:49
【问题描述】:

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

【问题讨论】:

  • 为什么要输出?
  • (a > 0).all(0).sum()--->2?

标签: python numpy


【解决方案1】:

这个函数统计元素都大于0的列数:

def count(mat):
    counter = 0
    tmp = mat > 0
    for col in tmp.T:
        if all(col):
             counter += 1
    return counter

这个功能是如何工作的?

首先它为 tmp 分配一个布尔值矩阵,指示原始矩阵的对应值是否大于 0,然后遍历该矩阵的转置并检查所有值是否为 True,这意味着它们都更大大于 0。

转置包含原始矩阵的列。乳清创建一个 numpy 数组,您将行传递给函数。通过转置,数组将包含列。

【讨论】:

    猜你喜欢
    • 2021-11-08
    • 2018-08-01
    • 2018-04-29
    • 2018-09-07
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 2015-02-11
    • 2014-04-21
    相关资源
    最近更新 更多