我需要找到numpy数组中所有行的行索引,这些行仅由符号区分.例如,如果我有数组:
>>> A
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 0, -1, -2],
[ 9, 5, 6],
[-3, -4, -5]])
Run Code Online (Sandbox Code Playgroud)
我希望输出 [(0,2),(1,4)]
我知道如何找到唯一的行,numpy.unique,所以我的直觉是将数组附加到自身的否定,即numpy.concatenate(A,-1*A),然后找到非唯一行但我感到困惑关于如何从中提取我需要的信息.此外,阵列可能非常大,因此将其附加到自身可能不是一个好主意.
我通过循环遍历数组并检查行索引是否等于另一行索引的否定来获得正确答案,但这需要很长时间.我想要像numpy.unique一样快的东西.
我已经从A中删除了所有重复的行,如果这在过程中有任何不同.