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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.where.html