栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用numpy查找矩阵中所有元素为零的行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用numpy查找矩阵中所有元素为零的行

这是一种方法。我认为numpy已使用导入

import numpy as np

In [20]: aOut[20]: array([[0, 1, 0],       [1, 0, 1],       [0, 0, 0],       [1, 1, 0],       [0, 0, 0]])In [21]: np.where(~a.any(axis=1))[0]Out[21]: array([2, 4])

这个答案略有不同:如何检查矩阵是否包含零列?

这是怎么回事:

any
如果数组中的任何值为“
truthy”,则该方法返回True。非零数字被视为True,而0被视为False。通过使用参数
axis=1
,该方法将应用于每一行。对于示例
a
,我们有:

In [32]: a.any(axis=1)Out[32]: array([ True,  True, False,  True, False], dtype=bool)

因此,每个值指示相应的行是否包含非零值。该

~
操作是二进制“不是”或补充:

In [33]: ~a.any(axis=1)Out[33]: array([False, False,  True, False,  True], dtype=bool)

(给出相同结果的替代表达式是

(a == 0).all(axis=1)
。)

要获取行索引,我们使用

where
函数。它返回参数为True的索引:

In [34]: np.where(~a.any(axis=1))Out[34]: (array([2, 4]),)

请注意,

where
返回的元组包含单个数组。
where
适用于n维数组,因此它总是返回一个元组。我们想要该元组中的单个数组。

In [35]: np.where(~a.any(axis=1))[0]Out[35]: array([2, 4])


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611974.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号