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贡献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]
添加回答
举报
0/150
提交
取消