numpy.where () подробное, пошаговое объяснение / примеры

У меня проблемы с пониманием numpy.where (), несмотря на чтение документа , этого сообщения и этого сообщения.

Может ли кто-нибудь предоставить пошаговые комментарии к примерам с массивами 1d и 2d?

2 Solutions collect form web for “numpy.where () подробное, пошаговое объяснение / примеры”

Некоторое время возились, я все понял и отправляю их здесь, надеясь, что это поможет другим.

Интуитивно, np.where похоже на запрос « скажите мне, где в этом массиве записи удовлетворяют заданному условию ».

 >>> a = np.arange(5,10) >>> np.where(a < 8) # tell me where in a, entries are < 8 (array([0, 1, 2]),) # answer: entries indexed by 0, 1, 2 

Он также может использоваться для получения записей в массиве, которые удовлетворяют условию:

 >>> a[np.where(a < 8)] array([5, 6, 7]) # selects from a entries 0, 1, 2 

Когда a является 2d-массивом, np.where() возвращает массив строк idx и массив col idx:

 >>> a = np.arange(4,10).reshape(2,3) array([[4, 5, 6], [7, 8, 9]]) >>> np.where(a > 8) (array(1), array(2)) 

Так, как и в случае 1d, мы можем использовать np.where() для получения записей в массиве 2d, которые удовлетворяют условию:

 >>> a[np.where(a > 8)] # selects from a entries 0, 1, 2 

Массив ([9])


Обратите внимание, что когда a равно 1d, np.where() все еще возвращает массив строк idx и массив col idx, но столбцы имеют длину 1, поэтому последний является пустым массивом.

Вот немного веселее. Я обнаружил, что очень часто NumPy делает именно то, что я бы хотел, чтобы это делало – иногда мне быстрее просто попробовать что-то, чем читать документы. На самом деле смесь обоих лучше всего.

Я думаю, что ваш ответ в порядке (и это нормально, если хотите). Это просто «лишний».

 import numpy as np a = np.arange(4,10).reshape(2,3) wh = np.where(a>7) gt = a>7 x = np.where(gt) print "wh: ", wh print "gt: ", gt print "x: ", x 

дает:

 wh: (array([1, 1]), array([1, 2])) gt: [[False False False] [False True True]] x: (array([1, 1]), array([1, 2])) 

… но:

 print "a[wh]: ", a[wh] print "a[gt] ", a[gt] print "a[x]: ", a[x] 

дает:

 a[wh]: [8 9] a[gt] [8 9] a[x]: [8 9] 
  • python scipy lesssq подходит для сложных чисел
  • Python SciPy: проблема оптимизации fmin_cobyla: одно ограничение не соблюдается
  • Усилить значения, похожие на Numpy или Scipy в Python
  • Интерполируя трехмерную поверхность, известную своими угловыми узлами, и раскрашивая ее цветовой схемой
  • Несколько экземпляров scipy.integrate.ode
  • Плавная реализация MATLAB (n-точечная скользящая средняя) в NumPy / Python
  • Как эффективно создавать итерации с помощью большого списка списков в python?
  • Возобновление оптимизации в scipy.optimize?
  • Различные результаты интеграции с использованием метода Монте-Карло против scipy.integrate.nquad
  • что делает numpy.apply_along_axis точно?
  • Определение размера байта матрицы scipy.sparse?
  •  
    Interesting Posts for Van-Lav

    Путь Python с не-латинским-1 PYTHONHOME

    Как вернуть изображение в HTTP-ответе с помощью CherryPy

    Объедините 3 отдельных массива numpy с RGB-изображением в Python

    Проблема с запуском python / matplotlib в фоновом режиме после завершения сеанса ssh

    Пакет Cython с __init __. Pyx: Возможно?

    Хадсон «Исходный код недоступен».

    Разрешение отклонено в Django makemessages

    Python: проблема с локальными модулями, скрывающая глобальные модули

    Как цикл for для вычисления аргумента

    Сглаживание графика дает огромную разницу в диапазоне

    Автоматический отступ не работает при использовании vim-кодирования python

    При чтении огромного файла HDF5 с «pandas.read_hdf ()», почему я все еще получаю MemoryError, хотя я читаю куски, указав chunksize?

    Как я могу использовать numpy без его установки?

    Как подсчитать количество вхождений «Нет» в списке?

    Заменить не буквенно-цифровые символы, за исключением некоторых исключений python

    Python - лучший язык программирования в мире.