Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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
Arrays 将Numpy数组的第三维指定给1D数组的Python方法_Arrays_Python 3.x_Numpy_Rgb - Fatal编程技术网

Arrays 将Numpy数组的第三维指定给1D数组的Python方法

Arrays 将Numpy数组的第三维指定给1D数组的Python方法,arrays,python-3.x,numpy,rgb,Arrays,Python 3.x,Numpy,Rgb,我正在尝试将一个已转换为3D numpy阵列的图像展平为三个单独的1D阵列,表示RGB通道 图像数组是成型的(高度、宽度、RGB),我尝试使用索引切片和解压缩来返回三维值,但都没有成功 理想情况下,三个单独的阵列代表每个RGB通道 例如: 打印(图像) [ [ [56, 6, 3], [23, 32, 53], [27, 33, 56] ], [ [57, 2, 3], [23, 246, 49], [29, 253, 58] ] ] 红色通道、绿色通道、蓝色通道=获取第三个(图像) 打印(红色

我正在尝试将一个已转换为3D numpy阵列的图像展平为三个单独的1D阵列,表示RGB通道

图像数组是成型的(高度、宽度、RGB),我尝试使用索引切片和解压缩来返回三维值,但都没有成功

理想情况下,三个单独的阵列代表每个RGB通道

例如:

打印(图像)
[
[ [56, 6, 3], [23, 32, 53], [27, 33, 56] ],
[ [57, 2, 3], [23, 246, 49], [29, 253, 58] ]
]
红色通道、绿色通道、蓝色通道=获取第三个(图像)
打印(红色通道)
[56, 23, 27, 57, 23, 29]
我曾考虑过使用嵌套for循环在前两个维度上迭代,然后将每个RGB数组添加到列表中,但据我所知,这样做既效率低下,又有点碍眼

提前谢谢

编辑

澄清:解压是指在zip函数中使用星形运算符(*),如下所示:

zip(*图像)

同样要澄清的是,我不打算保留宽度和高度,我只想基本上只展平并返回阵列的三维尺寸。

检查一次:你所说的
解压缩是什么意思<代码>图像[:,:,0]
选择一个频道;结果是2d
(高度、宽度)
<代码>重塑或
拉威尔
可用于将2d重塑为1d。
*数组
类似于
列表(数组)
对数组的第一维度进行操作,就像对嵌套列表进行操作一样。
red_channel, green_channel, blue_channel = np.transpose(np.reshape(image, (-1, 3)))