python nonzero()

返回非零元素的索引值。返回的是元组,元组的维数和参数的维数相同。

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:
',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.]]
原文地址:https://www.cnblogs.com/zhhy236400/p/9948933.html