zoukankan      html  css  js  c++  java
  • numpy的nonzero函数

    看官方文档:

    In [10]: help(np.nonzero)
    Help on function nonzero in module numpy.core.fromnumeric:

    nonzero(a)
    Return the indices of the elements that are non-zero.

    Returns a tuple of arrays, one for each dimension of `a`, containing
    the indices of the non-zero elements in that dimension. The
    corresponding non-zero values can be obtained with::

    a[nonzero(a)]

    To group the indices by element, rather than dimension, use::

    transpose(nonzero(a))

    The result of this is always a 2-D array, with a row for
    each non-zero element.

    Parameters
    ----------
    a : array_like
    Input array.

    Returns
    -------
    tuple_of_arrays : tuple
    Indices of elements that are non-zero.

    See Also
    --------
    flatnonzero :
    Return indices that are non-zero in the flattened version of the input
    array.
    ndarray.nonzero :
    Equivalent ndarray method.
    count_nonzero :
    Counts the number of non-zero elements in the input array.

    Examples
    --------
    >>> x = np.eye(3)
    >>> x
    array([[ 1., 0., 0.],
    [ 0., 1., 0.],
    [ 0., 0., 1.]])
    >>> np.nonzero(x)
    (array([0, 1, 2]), array([0, 1, 2]))

    >>> x[np.nonzero(x)]
    array([ 1., 1., 1.])
    >>> np.transpose(np.nonzero(x))
    array([[0, 0],
    [1, 1],
    [2, 2]])

    A common use for ``nonzero`` is to find the indices of an array, where
    a condition is True. Given an array `a`, the condition `a` > 3 is a
    boolean array and since False is interpreted as 0, np.nonzero(a > 3)
    yields the indices of the `a` where the condition is true.

    >>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])
    >>> a > 3
    array([[False, False, False],
    [ True, True, True],
    [ True, True, True]], dtype=bool)
    >>> np.nonzero(a > 3)
    (array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2]))

    The ``nonzero`` method of the boolean array can also be called.

    >>> (a > 3).nonzero()
    (array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2]))  #坐标(1,0)(1,1)(1,2)(2,0)(2,1)(2,2)非零

    numpy函数返回非零元素的目录。

    返回值为元组, 两个值分别为两个维度, 包含了相应维度上非零元素的目录值。   可以通过a[nonzero(a)]来获得所有非零值。

    nonzero(a)  将对矩阵a的所有非零元素, 分别安装两个维度, 一次返回其在各维度上的目录值。

    如果 a=mat([ [1,0,0],                          

                    [0,0,0],

                    [0,0,0]])                      

     则 nonzero(a) 返回值为 (array([0]), array([0]))   , 因为矩阵a只有一个非零值, 在第0行, 第0列。

    如果 a=mat([ [1,0,0],                          

                    [1,0,0],

                    [0,0,0]])                      

     则 nonzero(a) 返回值为 (array([0, 1]), array([0, 0]))   , 因为矩阵a只有两个非零值, 在第0行、第0列,和第1行、第0列。所以结果元组中,第一个行维度数据为(0,1) 元组第二个列维度都为(0,0)。

  • 相关阅读:
    POJ3678 KATU PUZZLE
    poj3321(codevs1228)苹果树
    codevs 1955 光纤通信 USACO
    codevs 1027 姓名与ID
    codevs 1051 接龙游戏
    洛谷 P1717 钓鱼
    codevs 1062 路由选择
    洛谷 P1083 借教室
    codevs 2596 售货员的难题
    Vijos 1053 easy sssp
  • 原文地址:https://www.cnblogs.com/phil-chow/p/5412275.html
Copyright © 2011-2022 走看看