为了账号安全,请及时绑定邮箱和手机立即绑定

函数 `any()` 应用于多个数组,而不仅仅是一个

函数 `any()` 应用于多个数组,而不仅仅是一个

潇潇雨雨 2023-03-16 16:30:05
any()我想同时将该函数应用于矩阵的所有行。如果我使用any()向量,当然它会在任何元素返回时返回True(或者在我的情况下) :1Trueimport numpy as npprint any(np.array([0,0,0,1]))*1现在假设我有一个矩阵。如果我想获得一个向量,1并且0取决于矩阵的每个元素True单独使用时是否会返回,我可以使用循环来完成for:matrix=np.array([[0,0,0],[0,0,1],[0,1,0]])result=np.zeros(len(matrix)).astype('int')i=0for line in matrix:    result[i]=any(matrix[i])    i+=1    print result不过这个方法看起来不太实用,因为矩阵的元素会随着循环一次处理一次for。有没有更好的方法扩展any到矩阵输入,使其返回一个向量,1如上0所示?请注意,我不想使用matrix.any(),因为它只会返回一个True或False语句,而我希望它应用于矩阵的每个单独元素。
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

numpy.any(matrix, axis=1)

numpy.any已经有你想要的功能。


查看完整回答
反对 回复 2023-03-16
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

你可以这样做:


import numpy as np


matrix = np.array([[0, 0, 0], [0, 0, 1], [0, 1, 0]])

matrix_sums = np.sum(matrix, axis=1)

are_truthy_matrix_sums = matrix_sums > 0


print are_truthy_matrix_sums

np.sum在将这些总和与 0 进行比较以查看这些行中是否存在任何真实值之前,我们使用将矩阵简化为具有总和的一维数组。


这打印:


[False  True  True]


查看完整回答
反对 回复 2023-03-16
  • 2 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信