Python 3.x 如何将形状(2,*(x,y))的数组重塑为(1,*(x,y),2),同时保留(x,y)的值?

Python 3.x 如何将形状(2,*(x,y))的数组重塑为(1,*(x,y),2),同时保留(x,y)的值?,python-3.x,numpy,reshape,stack-frame,Python 3.x,Numpy,Reshape,Stack Frame,我想将shape的数组(2,*(x,y))重塑为(1,*(x,y),2),同时保留(x,y)的值 (2,*(x,y))其中2表示游戏屏幕的帧,其中(x,y)是具有像素值的数组。我希望将其转换为(1,*(x,y),2)形状的数组,这样数字2仍然表示帧索引,而(x,y)数组值被保留。1将用于为训练神经网络的批次编制索引 numpy.reformate(1,*(x,y),2)不会保留(x,y)数组。使用numpy.transpose(),例如: import numpy as np arr = np

我想将shape的数组
(2,*(x,y))
重塑为
(1,*(x,y),2)
,同时保留
(x,y)
的值

(2,*(x,y))
其中2表示游戏屏幕的帧,其中
(x,y)
是具有像素值的数组。我希望将其转换为
(1,*(x,y),2)
形状的数组,这样数字2仍然表示帧索引,而
(x,y)
数组值被保留。1将用于为训练神经网络的批次编制索引

numpy.reformate(1,*(x,y),2)
不会保留
(x,y)
数组。

使用
numpy.transpose()
,例如:

import numpy as np

arr = np.arange(2 * 3 * 4).reshape((2, 3, 4))
arr.shape
# (2, 3, 4)

arr.transpose(1, 2, 0).shape
# (3, 4, 2)

new_arr = arr.transpose(1, 2, 0)[None, ...]
new_arr.shape
# (1, 3, 4, 2)

# the `(3, 4)` array is preserved:
arr.transpose(1, 2, 0)[:, :, 0] 
# array([[ 0,  1,  2,  3],
#        [ 4,  5,  6,  7],
#        [ 8,  9, 10, 11]])

arr[0, :, :]
# array([[ 0,  1,  2,  3],
#        [ 4,  5,  6,  7],
#        [ 8,  9, 10, 11]])

欢迎来到SO。请检查并创建一个显示您询问的具体行为的列表。什么是[无,…]意思?这三个点代表什么?这相当于,更多关于这一点。好的,它用于向数组中添加新的轴,所以我也需要把这三个点放在代码中。我对编码非常陌生,所以这可能是一个愚蠢的问题。请容忍我:)是的,(所有代码都是有原因的)。这三个点是一个内置的Python对象,名为。