该函数是获得矩阵中的非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行数据。