zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    龙果支付系统
    Java并发多线程
    StringRedisTemplate常用操作
    统一支付平台转型
    IntValue()方法 和 ValueOf()方法
    Java中一些知识的归纳总结
    mybatis的一些特殊符号标识(大于,小于,等于,不等于)
    MySQL中大于等于小于等于的写法
    boost::bind应用示例
    VC除零异常(错误)捕获
  • 原文地址:https://www.cnblogs.com/suanec/p/6843592.html
Copyright © 2011-2022 走看看