#python-3.x #numpy #numpy-ndarray
#python-3.x #numpy #numpy-ndarray
Вопрос:
У меня есть R <class ‘numpy.ndarray’> формы (30,30,30). Как получить форму (30,30,29), пожалуйста?
R[:-1]
выдает (29,30,30)
R[::-1]
выдает снова (30,30,30), почему?
Ответ №1:
Вы должны указать все оси, которые есть в массиве. Сделайте что-то вроде:
R[:,:,:-1]
Объяснение для этого таково: берем все элементы на первой оси, также берем все для второй и берем все, кроме последнего, для 3-й оси.
Причина, по которой ваши два варианта неверны, заключается в:
- Первый элемент просто ссылается на первую ось.
- Второй, если вы ставите : два раза, он ссылается на [start: stop:step]. Опуская start и stop, он принимает полную длину массива. При добавлении -1 к шагу порядок массива меняется на обратный, но опять же только по первой оси.