将 numpy 3d 数组转换为 1d 的 2d 数组

moh*_*aki -6 python numpy

如何将 3D numpy 数组转换为子维度数组?例如,我有一个形状为 (100,3,3) 的 3D numpy 数组,我想将其转换为 100 个形状为 (3,3) 的二维数组的向量?

Fra*_*anz 5

为此,请使用该numpy.split功能。假设你有

my_array = np.zeros((100, 3, 3))
Run Code Online (Sandbox Code Playgroud)

用:

my_new_array = np.split(my_array, 100, axis=0).
Run Code Online (Sandbox Code Playgroud)

由此您将获得一个包含 100 个形状为 (1,3,3) 的数组的数组。如果您想获得包含 (3,3) 数组的列表,只需使用列表推导式:

my_list = [my_array[i] for i in range(np.shape(my_array)[0])]
Run Code Online (Sandbox Code Playgroud)

.

  • 或者只是`my_list = list(my_array)` (2认同)