• numpy.where


    np.where(condition[, x, y])

    如果是一维,相当于[xv if c else yv for (c,xv,yv) in zip(condition,x,y)]

    输入条件,类数组形式,若判断结果成立则返回x,否则为y。

    返回为tuple或者array。

    当条件对象为一维,返回array。

    条件对象为二维,返回tuple。第一部分为矩阵行的坐标,第二部分为矩阵列的坐标。

    当条件对象维高维,按照二维矩阵操作,判断其中对象。

    np.eye(n)生成对象数组,在np.where中按照一维操作及返回。

    以下为scipy doc原文。

    numpy.where

    numpy.where(condition[, xy])

    Return elements, either from x or y, depending on condition.

    If only condition is given, return condition.nonzero().

    Parameters:

    condition : array_like, bool

    When True, yield x, otherwise yield y.

    x, y : array_like, optional

    Values from which to choose. x and y need to have the same shape as condition.

    Returns:

    out : ndarray or tuple of ndarrays

    If both x and y are specified, the output array contains elements of x where condition is True, and elements from y elsewhere.

    If only condition is given, return the tuple condition.nonzero(), the indices where condition is True.

    See also

    nonzerochoose

    Notes

    If x and y are given and input arrays are 1-D, where is equivalent to:

    [xv if c else yv for (c,xv,yv) in zip(condition,x,y)]

    np.where()

    Examples
    
    >>>
    >>> np.where([[True, False], [True, True]],
    ...          [[1, 2], [3, 4]],
    ...          [[9, 8], [7, 6]])
    array([[1, 8],
           [3, 4]])
    >>>
    >>> np.where([[0, 1], [1, 0]])
    (array([0, 1]), array([1, 0]))
    >>>
    >>> x = np.arange(9.).reshape(3, 3)
    >>> np.where( x > 5 )
    (array([2, 2, 2]), array([0, 1, 2]))
    >>> x[np.where( x > 3.0 )]               # Note: result is 1D.
    array([ 4.,  5.,  6.,  7.,  8.])
    >>> np.where(x < 5, x, -1)               # Note: broadcasting.
    array([[ 0.,  1.,  2.],
           [ 3.,  4., -1.],
           [-1., -1., -1.]])
    Find the indices of elements of x that are in goodvalues.
    
    >>>
    >>> goodvalues = [3, 4, 7]
    >>> ix = np.in1d(x.ravel(), goodvalues).reshape(x.shape)
    >>> ix
    array([[False, False, False],
           [ True,  True, False],
           [False,  True, False]], dtype=bool)
    >>> np.where(ix)
    (array([1, 1, 2]), array([0, 1, 1]))

    scipy doc : np.where()

  • 相关阅读:
    Python——极限编程
    RPC是什么?科普一下
    缓存在高并发场景下的常见问题
    如何提高缓存命中率
    数据库性能优化的误区
    缓存在大型网站架构中的应用
    APP多版本共存,服务端如何兼容?
    水平分库分表的关键问题及解决思路
    分库分表的几种常见玩法及如何解决跨库查询等问题
    分布式系统事务一致性解决方案
  • 原文地址:https://www.cnblogs.com/suanec/p/6843592.html
Copyright © 2020-2023  润新知