在数组上使用 np.nonzero 后获得正确的尺寸
Getting the correct dimensions after using np.nonzero on array
在一维数组上使用 np.nonzero 时:
l = np.array([0, 1, 2, 3, 0])
np.nonzero(l)
array([1,2,3], dtype=int64)
如何以最有效的方式将索引信息作为一维数组而不是元组获取?
np.nonzero
将 return 索引信息仅作为一维元组。但是,如果您正在寻找替代方案,请使用 np.argwhere
import numpy as np
l = np.array([0, 1, 2, 3, 0])
non_zero = np.argwhere(l!=0)
然而,这将return一个列矩阵。要将其转换为行矩阵,
non_zero = non_zero.T[0]
您正在寻找 np.flatnonzero
用于 1D
数组 -
In [5]: l
Out[5]: array([0, 1, 2, 3, 0])
In [6]: np.flatnonzero(l)
Out[6]: array([1, 2, 3])
只需索引元组
Idn = np.nonzero(l)[0]
flatnonzero
的代码确实
return a.ravel().nonzero()[0]
在一维数组上使用 np.nonzero 时:
l = np.array([0, 1, 2, 3, 0])
np.nonzero(l)
array([1,2,3], dtype=int64)
如何以最有效的方式将索引信息作为一维数组而不是元组获取?
np.nonzero
将 return 索引信息仅作为一维元组。但是,如果您正在寻找替代方案,请使用 np.argwhere
import numpy as np
l = np.array([0, 1, 2, 3, 0])
non_zero = np.argwhere(l!=0)
然而,这将return一个列矩阵。要将其转换为行矩阵,
non_zero = non_zero.T[0]
您正在寻找 np.flatnonzero
用于 1D
数组 -
In [5]: l
Out[5]: array([0, 1, 2, 3, 0])
In [6]: np.flatnonzero(l)
Out[6]: array([1, 2, 3])
只需索引元组
Idn = np.nonzero(l)[0]
flatnonzero
的代码确实
return a.ravel().nonzero()[0]