返回非零元素的索引值。返回的是元组,元组的维数和参数的维数相同。
from numpy import *
a=array([1,2,3])
b=array([[1],[2],[2]])
c=array([[[1,0],[1,2]],
[[0,1],[0,2]],
[[0, 0], [0, 2]]])
print(nonzero(a))
print(nonzero(b))
print(nonzero(c))
输出:
(array([0, 1, 2], dtype=int64),)
(array([0, 1, 2], dtype=int64), array([0, 0, 0], dtype=int64))
(array([0, 0, 0, 1, 1, 2], dtype=int64), array([0, 1, 1, 0, 1, 1], dtype=int64), array([0, 0, 1, 1, 1, 1], dtype=int64))
实用举例:
from numpy import *
dataSet=mat(eye(4))
print('dataSet:\n',dataSet)
value=0.5
featureIndex=1
print(dataSet[:,featureIndex]>value)
a=nonzero(dataSet[:,featureIndex]>value)
print('a:',a)
print('a[0]:',a[0])
print('dataset[a[0],:]:',dataSet[a[0],:])
mat0=dataSet[nonzero(dataSet[:,featureIndex]>value)[0],:][0]
print('mat0:',mat0)
输出:
dataSet:
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
[[False]
[ True]
[False]
[False]]
a: (array([1], dtype=int64), array([0], dtype=int64))
a[0]: [1]
dataset[a[0],:]: [[0. 1. 0. 0.]]
mat0: [[0. 1. 0. 0.]]