Кортеж для индексации с использованием NumPy - PullRequest
0 голосов
/ 24 мая 2018

Это сводит меня с ума, но я не могу понять, у меня есть матрица данных (10000,4)

Мне нужно выбрать несколько строк, где элементы столбца 0

ind1=np.where( (data[:,0]>55) & (data[:,0]<65) )

Я хочу сохранить эти данные только так

keep_data=data[ind1,:]

Но keep_data теперь (1 10000,4)

Почему это так?

PS Чтоя делаю это efollwing

keep_data=np.reshape(keep_data,(keep_data.shape[1],keep_data.shape[2]))

1 Ответ

0 голосов
/ 24 мая 2018

numpy.where возвращает кортеж.

Поэтому используйте ind1 = np.where((data[:,0]>55) & (data[:,0]<65))[0]

. Обратите внимание на индексирование [0], чтобы выбрать единственный элемент кортежа.

Это отмечено в документах :

numpy.where ( условие [, x, y] )

Возвращать элементы из x или y, в зависимости от условия.

Если задано только условие, вернуть кортеж condition.nonzero(), индексы, где условие - True.

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