- 返回:一个数组,该数组是a的非0索引
输入:
import numpy as np
a=np.random.randint(0,3,(3,4))
print(a)
print(a.flatten())
np.flatnonzero(a).tolist()
输出:
[[1 1 1 2]
[1 1 0 2]
[2 2 0 2]]
[1 1 1 2 1 1 0 2 2 2 0 2]
[0, 1, 2, 3, 4, 5, 7, 8, 9, 11]
如上,np.flatnonzero()的作用是先将数组扁平化,然后将非零元素的需要以array的形式返回
这个函数在深度学习数据有补零的情况下,计算loss非常之有效,体会一下
np.flatnonzero()用法扩展
能否指定,不是返回非零的元素序号,而是可以自己指定
例一:==
输入:
import numpy as np
a=np.random.randint(0,3,(3,4))
print(a)
print(a.flatten())
np.flatnonzero(a==2).tolist()
输出:
[[0 0 0 0]
[2 1 2 0]
[1 0 0 2]]
[0 0 0 0 2 1 2 0 1 0 0 2]
[4, 6, 11]
例二:》=
输入:
import numpy as np
a=np.random.randint(0,10,(3,4))
print(a)
print(a.flatten())
np.flatnonzero(a>=5).tolist()
输出:
[[4 7 4 5]
[4 9 2 9]
[3 9 1 4]]
[4 7 4 5 4 9 2 9 3 9 1 4]
[1, 3, 5, 7, 9]