Я работаю с многомерными -массивами Numpy. Я заметил некоторое непоследовательное поведение при доступе к этим массивам с другими массивами индексов. Например:
import numpy as np
start = np.zeros((7,5,3))
a = start[:,:,np.arange(2)]
b = start[0,:,np.arange(2)]
c = start[0,:,:2]
print 'a:', a.shape
print 'b:', b.shape
print 'c:', c.shape
В этом примере я получаю результат:
a: (7, 5, 2)
b: (2, 5)
c: (5, 2)
Это меня смущает. Почему «b» и «c» не имеют одинаковых размеров? Почему «b» меняет порядок осей, а «а» нет?
Я смог спроектировать свой код с учетом этих несоответствий благодаря множеству модульных тестов, но понимание того, что происходит, было бы полезно.
Для справки: я использую Python 2.7.3 и Numpy 1.6.2 через MacPorts.