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] 
  • объединение логарифма и линейной шкалы в matplotlib
  • Как обработать IPython <-> обратный вызов ()
  • Имя этого алгоритма, и есть ли его реализация numpy / scipy?
  • 2D-интегралы в SciPy
  • Сортировка массивов в NumPy по столбцам
  • Система Scipy - нелинейные уравнения с линейными ограничениями (новичок)
  • Подключить эмпирическое распределение к теоретическим с помощью Scipy (Python)?
  • Что делает .shape в "for i in range (Y.shape )"?
  • Python NumPy: как заполнить матрицу, используя уравнение
  • симулятор реалистичного сигнала ЭКГ из данных rr для matlab или python
  • Функция scipy всегда возвращает массив numpy
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.