np.nonzero()函数被用来求目标数组(矩阵)的非零元素位置索引:
len(np.nonzero(X))
可以用来表示目标数组a中非零元素的个数。import numpy as np
a = np.array([1, 2, 3, 0])# 第一种:
b = a.nonzero()
print('1: ', b)# 第二种:
b = np.nonzero(a)
print('2: ', b)''' 输出
1: (array([0, 1, 2]),)
2: (array([0, 1, 2]),)
'''
对于一维数组来说,np.nonzero()返回了一个一维array数组,其含义是数组中非零元素的索引。
import numpy as npa = [1, 0, 2, 0, 3, 0] # 一维数组
b = np.nonzero(a)
print(b)'''输出
(array([0, 2, 4]),)
'''
对于二维数组来说,np.nonzero()的返回值是两个array数组,对应二维数组的两个维度。
import numpy as npa = [[1, 1, 0],[0, 0, 0],[1, 0, 3]]
b = np.nonzero(a)
print(b)'''输出
(array([0, 0, 2, 2]), array([0, 1, 0, 2]))
'''
返回结果依旧是三维数组中非零元素的索引。
import numpy as npa = [[[1, 1, 0],[0, 0, 1]],[[0, 0, 0],[1, 0, 0]],[[1, 0, 3],[0, 0, 0]]]
b = np.nonzero(a)
print(b)'''输出
(array([0, 0, 0, 1, 2, 2]), array([0, 0, 1, 1, 0, 0]), array([0, 1, 2, 0, 0, 2]))
'''