2015-02-09 4 views
0

Я индексирую 1-й массив с синтаксисом 2d.зависимый результат numpy версии для индексации 2d на массиве 1d

С NumPy 1.8.0 я получаю следующее:

np.array([1,2,3])[:,[0,1]] 
IndexError: too many indices 

NumPy 1.6.2 дает результат:

np.array([1,2,3])[:,[0,1]] 
array([1, 2]) 

ли вести себя 1.8.0 "лучше"? Где зарегистрировано изменение в поведении?

ответ

1

У Numpy было несколько ошибок, связанных с индексацией массивов, скорее всего, поведение в 1.6.2 фактически нарушается в некоторых случаях, что приводит к его отключению.

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

Я бы рекомендовал вместо этого:

numpy.array([1,2,3])[[0,1]] 

Или даже:

numpy.array([1,2,3]).take([0, 1]) 
Смежные вопросы