gpt4 book ai didi

python - Numpy:在另一个 numpy 数组中创建一批 numpy 数组( reshape )

转载 作者:太空狗 更新时间:2023-10-30 02:54:36 27 4
gpt4 key购买 nike

我有一个形状为 (32,5) 的 numpy 数组 batch。批处理的每个元素都包含一个 numpy 数组 batch_elem = [s,_,_,_,_] 其中 s = [img,val1,val2] 是一个 3 -维 numpy 数组和 _ 只是标量值。img 是尺寸为 (84,84,3)

的图像(numpy 数组)

我想创建一个形状为 (32,84,84,3) 的 numpy 数组。基本上我想提取每个 batch 中的图像信息并将其转换为 4 维数组。

我尝试了以下方法:

b = np.vstack(batch[:,0]) #this yields a b with shape (32,3), type: <class 'numpy.ndarray'>

现在我想访问图像(第二维的第一个索引)

img_batch = b[:,0] # this returns an array of shape (32,), type: <class 'numpy.ndarray'>

如何才能最好地访问图像数据并获得形状 (32,84,84,3)

注意:

 s = b[0] #first s of the 32 in batch: shape (3,) , type: <class 'numpy.ndarray'>

编辑:

这应该是一个最小的例子:

img = np.zeros([5,5,3])
s = np.array([img,1,1])
batch_elem = np.array([s,1,1,1,1])
batch = np.array([batch_elem for _ in range(32)])

最佳答案

假设我理解正确,你可以在最后一个轴上堆叠两次。

res = np.stack(np.stack(batch[:,0])[...,0])

关于python - Numpy:在另一个 numpy 数组中创建一批 numpy 数组( reshape ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45240209/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com