Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 重塑三维阵列形状的正确方法_Python_Numpy - Fatal编程技术网

Python 重塑三维阵列形状的正确方法

Python 重塑三维阵列形状的正确方法,python,numpy,Python,Numpy,我有一个形状为(n,4,5,5)的数据集,其中“n”是记录数,4个通道,每个通道有5 X 5个矩阵。Keras CNN只接受带有形状(n、宽度、高度、通道)的输入。当我将重塑应用于数据集时,如 restraped_dataset=dataset.restraped(-1,5,5,4) 重塑的_数据集包含顺序错误的数据。我在我的数据集中发布了1个样本 [[0.0.0.1.42413757] [ 0. 0. 1.82047845 0. 0.9

我有一个形状为(n,4,5,5)的数据集,其中“n”是记录数,4个通道,每个通道有5 X 5个矩阵。Keras CNN只接受带有形状(n、宽度、高度、通道)的输入。当我将重塑应用于数据集时,如

restraped_dataset=dataset.restraped(-1,5,5,4)
重塑的_数据集包含顺序错误的数据。我在我的数据集中发布了1个样本

[[0.0.0.1.42413757]
[ 0.          0.          1.82047845  0.          0.91023923]
[ 0.          1.82047845  0.          0.          1.82047845]
[ 1.42413757  0.          0.          0.          0.        ]
[ 0.          0.91023923  1.82047845  0.          0.        ]]
[[ 1.          0.          0.          0.5         0.        ]
[ 0.          1.          0.25        0.          0.2       ]
[ 0.          0.25        1.          0.          0.25      ]
[ 0.5         0.          0.          1.          0.        ]
[ 0.          0.2         0.25        0.          1.        ]]
[[ 9.          9.         21.          9.          9.        ]
[ 9.          9.         21.          9.          9.        ]
[21.         21.         49.         21.         21.        ]
[ 9.          9.         21.          9.          9.        ]
[ 9.          9.         21.          9.          9.        ]]
[[ 0.80952381  0.          0.          0.47619048  0.        ]
[ 0.          1.66666667  0.66666667  0.          0.33333333]
[ 0.          0.66666667  3.03333333  0.          0.66666667]
[ 0.47619048  0.          0.          0.80952381  0.        ]
[ 0.          0.33333333  0.66666667  0.          1.66666667]]]

如何在(n,5,5,4)中重塑数据集

您可以使用以下代码从第一个频道切换到最后一个频道:

import numpy as np

n = 5
data = np.random.randn(n, 4, 5, 5)

print(data.shape) # output - (5, 4, 5, 5)

data_in = np.moveaxis(data, 1, -1)

print(data_in.shape) # output - (5, 5, 5, 4)

您可以使用以下代码从第一个频道转到最后一个频道:

import numpy as np

n = 5
data = np.random.randn(n, 4, 5, 5)

print(data.shape) # output - (5, 4, 5, 5)

data_in = np.moveaxis(data, 1, -1)

print(data_in.shape) # output - (5, 5, 5, 4)
您可以使用来排列数组的维度:

reshaped_dataset = dataset.transpose(0, 2, 3, 1)
如果
数据集
的轴表示
(n,通道,宽度,高度)
,则
重塑的\u数据集
的轴表示
(n,宽度,高度,通道)

,可用于排列数组的尺寸:

reshaped_dataset = dataset.transpose(0, 2, 3, 1)
如果
数据集
的轴表示
(n,通道,宽度,高度)
,则
重塑的\u数据集
的轴表示
(n,宽度,高度,通道)