Использование np.where () [0] - PullRequest
       3

Использование np.where () [0]

0 голосов
/ 04 октября 2018

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

below = np.where(self.data < self.threshold)[0]


startandend = np.diff(below)
startpoints = np.insert(startandend, 0, 2)
endpoints = np.insert(startandend, -1, 2)
startpoints = np.where(startpoints>1)[0]
endpoints = np.where(endpoints>1)[0]
startpoints = below[startpoints]
endpoints = below[endpoints]

Я действительно не использую [0] после функции np.where () здесь

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

np.where сложно.Он возвращает массив списков индексов, где выполняются условия, , даже если условие никогда не выполняется. В частности, np.where(my_numpy_array==some_value)[0], это означает, что вы хотите первыйзначение в массиве, который является списком и который содержит список индексов ячеек, отвечающих условию.

Довольно много.Проще говоря, np.where(array==x)[0] возвращает список индексов, где были выполнены условия.Я предполагаю, что это результат разработки numpy для очень широких приложений.

Имейте в виду, что при отсутствии совпадений по-прежнему возвращает пустой список ;ошибки типа only size-1 arrays can be converted to python (some type) могут быть отнесены к этому.

0 голосов
/ 04 октября 2018
below = np.where(self.data < self.threshold)[0]

означает:

взять первый элемент из набора ndarrays, возвращенных np.where (), и присвоить его below.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...