python – 细分大型列表的最有效方法是什么?

我有一个列表,其中包含1024 * 1024图像的RGBA颜色数据,这意味着该列表中有4,194,304个整数.我需要将其拆分为1024个子列表,每个子列表包含1024个包含4个通道的子列表,以便能够将其用于我需要的内容.

我已经尝试使用for循环将数据附加到新列表,但这是一个非常缓慢的过程.我只需要每4个整数划分一次列表.这样做最有效的方法是什么?如果可以以某种方式使用它,我有numpy.

我想我应该提一下,这个列表来自于从.raw图像中解压缩结构,所以如果有一种方法可以在创建时拆分列表,同时解压缩也可以.

听起来你可以使用 numpy.reshape来获得你想要的东西.假设您有12个元素的列表:

>>> import numpy as np
>>> x = np.arange(12)
>>> x
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

我们将重塑它以给每行四个元素:

>>> x.reshape(-1,4)
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

你也可以重塑两个以上的尺寸,所以说x是100个1-d数组中的5×5 RGBA图像,你可以做y = x.reshape(5,5,4),所以y [0] [0]给出(0,0)像素的四个通道,y [0] [1]包含(0,1)像素的四个通道,依此类推.

相关文章
相关标签/搜索