该函数是获得矩阵中的非0数据的下标的,会通过什么来表示呢?我们通过下面的例子就可以清楚的发现了:
假设有程序如下:
from numpy import *
b = array([
[1,1,1,0,1,1],
[1,1,1,0,1,0],
[1,1,1,0,1,1]
])
mat(b)
c = nonzero(b)
print mat(c)
那么输出会是:
[[0 0 0 0 0 1 1 1 1 2 2 2 2 2]
[0 1 2 4 5 0 1 2 4 0 1 2 4 5]]
其中第一行表示非0数据的行标,第二行表示非0数据的列标。如上面的第一列组成(0,0)表示矩阵中该位置的数据非0,我们看没有(0,3)表示该位置矩阵的数据是0,我们看矩阵也确实是这样。那么同理如果矩阵是3纬,那么显然nonzero()函数就会返回3行数据。