【发布时间】:2021-05-10 03:34:43
【问题描述】:
在 python 3.9 中使用 numpy。
我有一组图片(480 张图片,每张图片的大小为 640x480)。
我想创建一个新图像,其中该图像的每一行 N 是我的数组中图像 #N 的行 N 的副本。
我可以用循环来做到这一点:
for i, img in enumerate(image_array):
new_image[i,:]=img[i,:)
有没有办法使用向量化的方式使用 numpy 来完成它,因为根据文档它更快?
对于上下文: 我的图像数组最初是用这个创建的:
image_array = np.full((480,480,640,3), blank_image, np.uint8)
然后从视频流中更新数组中的每个图像。
我迷失了 np.diagonal、np.compress 的逻辑......
谢谢
编辑:
感谢第一个回答:
idx = np.arange(len(image_array))
new_image = image_array[idx, idx, ...]
专心工作。
【问题讨论】:
-
我想不出没有循环的方法。你在这里跨越两个维度。你想做的是连接
x[0,0,:,:]和x[1,1,:,:]和x[2,2,:,:]等。
标签: python numpy numpy-ndarray