как использовать строку [a, b] для индексации другого массива как данных [a: b]? - PullRequest
0 голосов
/ 11 августа 2011

У меня есть два массива, первый - массив (n, 2), который содержит начало и конец выделения в пуле данных, второй - пул данных.

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

Я нашел следующее решение, но оно выглядит неуклюже:

relevant_data = datapool[np.arange(*selection[0])]]

Есть идеи?

update : Возможность вложения в указатель является большим плюсом (получение части выбора).

Ответы [ 2 ]

6 голосов
/ 11 августа 2011

Использование slice:

In [1]: row = [4,7]

In [2]: data = range(10000)

In [3]: data[slice(*row)]
Out[3]: [4, 5, 6]
4 голосов
/ 11 августа 2011

Еще более простое решение, чем использование slice() -

row = [4, 7]
data[row[0]:row[1]]

, который может быть легче читать, поскольку он немного более явный.

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