dask.array.ma.nonzero
dask.array.ma.nonzero¶
- dask.array.ma.nonzero(self)[源代码]¶
此文档字符串是从 numpy.ma.core.nonzero 复制的。
Dask 版本可能存在一些不一致性。
返回未屏蔽且不为零的元素的索引。
返回一个数组的元组,每个维度一个数组,包含该维度中非零元素的索引。相应的非零值可以通过以下方式获得:
a[a.nonzero()]
要按元素而不是维度对索引进行分组,请改为使用:
np.transpose(a.nonzero())
这个结果总是一个二维数组,每一行对应一个非零元素。
- 参数
- 无
- 返回
- tuple_of_arrays元组
非零元素的索引。
参见
numpy.nonzero
对 ndarray 进行操作的函数。
flatnonzero
返回输入数组展平版本中非零元素的索引。
numpy.ndarray.nonzero
等效的 ndarray 方法。
count_nonzero
计算输入数组中非零元素的数量。
示例
>>> import numpy as np >>> import numpy.ma as ma >>> x = ma.array(np.eye(3)) >>> x masked_array( data=[[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]], mask=False, fill_value=1e+20) >>> x.nonzero() (array([0, 1, 2]), array([0, 1, 2]))
被遮罩的元素将被忽略。
>>> x[1, 1] = ma.masked >>> x masked_array( data=[[1.0, 0.0, 0.0], [0.0, --, 0.0], [0.0, 0.0, 1.0]], mask=[[False, False, False], [False, True, False], [False, False, False]], fill_value=1e+20) >>> x.nonzero() (array([0, 2]), array([0, 2]))
索引也可以按元素分组。
>>> np.transpose(x.nonzero()) array([[0, 0], [2, 2]])
nonzero
的一个常见用途是找到数组中条件为 True 的索引。给定一个数组 a,条件 a > 3 是一个布尔数组,由于 False 被解释为 0,ma.nonzero(a > 3) 返回 a 中条件为真的索引。>>> a = ma.array([[1,2,3],[4,5,6],[7,8,9]]) >>> a > 3 masked_array( data=[[False, False, False], [ True, True, True], [ True, True, True]], mask=False, fill_value=True) >>> ma.nonzero(a > 3) (array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2]))
条件数组的
nonzero
方法也可以被调用。>>> (a > 3).nonzero() (array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2]))