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