首页 > 解决方案 > 从一维数组创建子数组 - Python

问题描述

我已经在 Internet 上搜索以尝试找到解决方案,并尝试制作自己的解决方案,但似乎无法弄清楚。

我需要能够获取一个 1D NumPy 数组,并在该数组中,在每 1024 个值变成一个 32x32 数组并继续运行,直到完全搜索完初始数组并避免任何错误,只需附加任何必要的零填充子数组。

任何帮助或指导将不胜感激!

标签: pythonarraysnumpy

解决方案


你真的不需要做太多事情。首先将数组填充到最接近的 1024 倍数:

arr = np.random.rand(1024 * 5 - 100)

pad = -arr.size % 1024
if pad:
    arr = np.concatenate((arr, np.zeros(pad, dtype=arr.dtype)))

然后重塑为形状数组(N, 32, 32)

imgs = arr.reshape(-1, 32, 32)

现在你有一堆图像。索引imgs或迭代它会给你单独的(32, 32)图像。


推荐阅读