0
我有一个非常奇怪的问题,numpy.nonzero()。它对于不是1或-1的值表现良好,但对于这两个值,似乎会产生奇怪的结果。Numpy.nonzero对于值为1或-1的行为很奇怪
例如,
goalmat = np.matrix([[2, 0, 1], [-1, 0, -1]])
使得
matrix([[ 2, 0, 1],
[-1, 0, -1]])
现在,使用numpy.nonzero(goalmat == x)的只能部分:
>>> np.nonzero(goalmat == 1)
(matrix([[0]]), matrix([[2]]))
>>> np.nonzero(goalmat == -1)
(matrix([[1, 1]]), matrix([[0, 2]]))
而且
>>> goalmat = np.matrix([[2, 2, 1], [-1, 1, -1]])
>>> goalmat
matrix([[ 2, 2, 1],
[-1, 1, -1]])
>>> np.nonzero(goalmat == 1)
(matrix([[0, 1]]), matrix([[2, 1]]))
>>> np.nonzero(goalmat == -1)
(matrix([[1, 1]]), matrix([[0, 2]]))
所以它似乎给1的正确位置,如果我要求-1 ...
我误用/误解numpy.nonzero()?
这看起来像正确的输出,我...对于每一个真正的位置,你有指数为0轴矩阵和指数的对轴1 –
矩阵你是对的> ___ <我会编辑我的问题,必须找到正确的数据。 –
对不起,我只是从shell中错误的测试运行,你是完全正确的。我用真正奇怪的结果解决了这个问题,至少我觉得他们很奇怪:) –