Теперь, когда я пытаюсь использовать numy 'горячие клавиши'
Вы не используете сочетания клавиш Numpy .
Каждая [...]
- это отдельная операция, возвращающая новый объект массива, поэтому в каждом примере вы выполняете нарезку три раза, дважды с [:]
и один раз с [0]
. array[:]
просто создает новое представление для всего массива:
>>> import numpy as np
>>> all_data = np.zeros((145, 145, 220))
>>> all_data.shape
(145, 145, 220)
>>> all_data[:].shape
(145, 145, 220)
>>> np.array_equal(all_data[:], all_data) # the slice is equal to the original
True
Добавление другого [:]
затем просто создает другое представление, и, в конце концов, единственная операция, которая на самом деле дает другой результат, - это операция индексации [0]
, которая затем создает представление для , просто первого элемент 3-мерного (145, 145, 220)
массива, (то есть 2-мерная матрица):
>>> all_data[:][:].shape
(145, 145, 220)
>>> np.array_equal(all_data[:][:][0], all_data[0])
True
Вы , возможно, также не использовали [:]
нарезку вообще .
Вам необходимо передать кусочки измерений в виде кортежа в одну [...]
операцию индексации:
>>> all_data[0, :, :].shape # the same result as all_data[0]
(145, 220)
>>> all_data[:, 0, :].shape
(145, 220)
>>> all_data[:, :, 0].shape
(145, 145)
Теперь у вас есть вид на двумерную матрицу по определенному индексу.