numpy.where
-
numpy.where(condition[, x, y]) -
Возвращает элементы, выбранные из
xилиyв зависимости отcondition.Примечание
Когда предоставлен только
condition, эта функция является сокращением дляnp.asarray(condition).nonzero(). Использованиеnonzeroнапрямую предпочтительнее, так как оно корректно работает для подклассов. Остальная часть этой документации охватывает только случай, когда предоставлены все три аргумента.- Параметры
-
-
conditionarray_like, bool -
Где True, возвращает
x, в противном случае возвращаетy. -
x, yarray_like -
Значения для выбора.
x,yиconditionдолжны быть совместимы для трансляции в определенную форму.
-
- Возвращает
-
-
outndarray -
Массив с элементами из
xгдеconditionравно True, и элементами изyв противном случае.
-
Примечания
Если все массивы одномерные,
whereэквивалентно:[xv if c else yv for c, xv, yv in zip(condition, x, y)]
Примеры
>>> a = np.arange(10) >>> a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> np.where(a < 5, a, 10*a) array([ 0, 1, 2, 3, 4, 50, 60, 70, 80, 90])
Это также может использоваться с многомерными массивами:
>>> np.where([[True, False], [True, True]], ... [[1, 2], [3, 4]], ... [[9, 8], [7, 6]]) array([[1, 8], [3, 4]])Формы x, y и условия транслируются вместе:
>>> x, y = np.ogrid[:3, :4] >>> np.where(x < y, x, 10 + y) # both x and 10+y are broadcast array([[10, 0, 0, 0], [10, 11, 1, 1], [10, 11, 12, 2]])>>> a = np.array([[0, 1, 2], ... [0, 2, 4], ... [0, 3, 6]]) >>> np.where(a < 4, a, -1) # -1 is broadcast array([[ 0, 1, 2], [ 0, 2, -1], [ 0, 3, -1]])
© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.where.html