我有一个二进制的numpy数组,数组在某些列或完全零中包含一个1,即数组的行和是类似于二进制向量的。
A = array([[0, 0, 0, 1, 0, 1],
[0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[1, 0, 1, 0, 0, 0]])我希望找到一行索引,其中1出现在每列中。如果每个列中没有任何人,那么就不需要返回任何索引。
在上述情况下,我希望结果为
[3, 2, 3, 0, 0]numpy,其中的结果不能用于逐行迭代。
发布于 2019-08-26 11:40:57
试试这个:
rows, cols = np.where(A==1)
result = rows[np.argsort(cols)]这就给了array([3, 2, 3, 0, 0])一个结果。只有在满足每个列中最多一次出现1的假设时,它才能工作。
发布于 2019-08-26 13:24:56
您可以在A的转位上使用where:
np.where(A.T)[1]
# array([3, 2, 3, 0, 0])https://stackoverflow.com/questions/57656879
复制相似问题