Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对于值1或-1,Numpy.nonzero的行为异常_Python_Python 2.7_Numpy - Fatal编程技术网

Python 对于值1或-1,Numpy.nonzero的行为异常

Python 对于值1或-1,Numpy.nonzero的行为异常,python,python-2.7,numpy,Python,Python 2.7,Numpy,我对numpy.nonzero()有一个非常奇怪的问题。对于不是1或-1的值,它表现良好,但对于这两个值,它似乎会产生奇怪的结果 比如说, goalmat = np.matrix( [[2, 0, 1], [-1, 0, -1]]) 制造 现在,使用numpy.nonzero(goalmat==x)只能部分起作用: >>> np.nonzero(goalmat == 1) (matrix([[0]]), matrix([[2]])) >>> np.nonze

我对numpy.nonzero()有一个非常奇怪的问题。对于不是1或-1的值,它表现良好,但对于这两个值,它似乎会产生奇怪的结果

比如说,

goalmat = np.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]]))

因此,如果我要求-1,它似乎给出了1的正确位置


我是否误用/误解了numpy.nonzero()?

它确实工作正常,您实际上没有使用值为-1的
nonzero()
,而是将True和False作为语句
goalmat==-1
的输出。 您可以通过以下方式检查
非零()

>>> index1, index2 = np.nonzero(goalmat == -1)
>>> goalmat[index1, index2]
matrix([[-1, -1]])

对我来说,这似乎是正确的输出。。。对于每个真实位置,都有轴0的索引矩阵和轴1的索引矩阵。你是对的>\uuuuuu<我将编辑我的问题,必须找到正确的数据。对不起,我刚刚从shell中进行了错误的测试,你完全正确。我用真正奇怪的结果解决了这个问题,至少我觉得它们很奇怪:)哦,天哪,好吧,我明白了。所以(矩阵([[1,1]]),矩阵([[0,2]])不是指[1,1]和[0,2],而是指[1,0]和[1,2],对吗?嗯,好吧,我只是误读了输出,弄糊涂了。谢谢文档显示,使用转置产生您期望的对,`np.transpose(np.nonzero(x))`
>>> 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]]))
>>> index1, index2 = np.nonzero(goalmat == -1)
>>> goalmat[index1, index2]
matrix([[-1, -1]])