首页 > 解决方案 > 在同一张量纤维中不止一个为真

问题描述

给定具有其列总和为 1 的a_ij形状的数组:(n,m)

>>> a
array([[1, 1, 0],
       [0, 0, 1],
       [0, 0, 0]])

如果没有 for loops,我想找到np.ndarray b_j带有 shape的 1-d (m,),如果在同一'th 行中至少有一个其他值已经包含'th 列的值,则它的第j'th 元素包含。(哇,那是一口,甚至不是那么清楚......)。TrueTrueijTrue

答案是:

>>> b
array([1,1,0])

读数b:第一个元素中的值意味着,在第一行(即第二列)True中至少有一个其他值。存在的第三个元素表示array 的第二行中没有其他值。TrueabFalseTruea

标签: pythonperformancenumpy

解决方案


如果我理解正确:

(a.sum(axis=1) > 1) @ a

推荐阅读