Мне сложно понять, как определяется форма результирующего массива после нарезки в numpy. Например, я использую следующий простой код:Определение формы массива результатов после нарезки в Numpy
import numpy as np
array=np.arange(27).reshape(3,3,3)
slice1 = array[:,1:2,1]
slice2= array[:,1,1]
print "Content in slice1 is ", slice1
print "Shape of slice1 is ", slice1.shape
print "Content in slice2 is ",slice2
print "Shape of Slice2 is", slice2.shape
Выход этого:
Content in slice1 is
[[ 4]
[13]
[22]]
Shape of slice1 is (3, 1)
Content in slice2 is [ 4 13 22]
Shape of Slice2 is (3,)
В обоих этих случаях содержание такое же (как это должно быть). Но они различаются по форме. Итак, как результирующая форма определяется numpy?
http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html – Kasramvd
В основном: нарезка не уменьшает количество измерений, но индексирование с целое число уменьшает количество измерений на 1 каждый раз. –
Существует атрибут 'shape'. Посмотрите на 'x .__ array_interface__', чтобы увидеть его и другие атрибуты. – hpaulj