>>> y = np.arange(35).reshape(5,7) >>> y[1:5:2,::3] array([[ 7, 10, 13], [21, 24, 27]])
Что означает y[1:5:2,::3]? Подробно.
y[1:5:2,::3]
Здесь вы можете найти подробности Python slicing notation.
Python slicing notation
В вашем случае сочетаются обозначения нарезки с обозначением numpy: y[1:5:2,::3] означает наклон нарезки 1:5:2 в 1-е измерение и ::3 во 2-м измерении
1:5:2
::3
# Initial array [[ 0 1 2 3 4 5 6] [ 7 8 9 10 11 12 13] [14 15 16 17 18 19 20] [21 22 23 24 25 26 27] [28 29 30 31 32 33 34]]
1:5:2 берут из значений [1;5[ и один над 2, это в первом измерении, поэтому он сохраняет значения 1 и 3 (можно сказать строки )
[1;5[
1
3
[[ 7 8 9 10 11 12 13] [21 22 23 24 25 26 27]]
::3 принимает все элементы, 2 первые значения не предоставлены, но только один за тремя во втором измерении
[ 7 8 9 10 11 12 13] => [ 7 10 13] # one over 3