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.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,然后迭代该矩阵的转置并检查所有值是否为 True,这意味着它们都大于 0。
转置包含原始矩阵的列。乳清创建一个 numpy 数组,您将行传递给函数。通过转置,数组将包含列。
推荐阅读
- php - 删除子只学说2 symfony
- angular - Angular(7)加载错误的惰性模块
- neo4j - 用于存储嵌套评论的图形数据库
- greatest-n-per-group - ClickHouse 中按组排列的前 N 行
- vue.js - 如何使用 Vue.JS 和这种布局实现子域路由(图片)
- raspberry-pi3 - 覆盆子 pi3 上的 NixOS 无头设置
- npm - 未找到 es6 导出默认值,但可在 node_modules 内部工作
- python - 使用 PyQt5 getOpenFileName 打开文件时遇到问题
- azure - Azure 函数插入但不更新 cosmosDB
- c++ - 如何使用 Mako SDK 在文档页面的给定区域内平铺图像?