我创建了一个大小为(256,144,3)的数组。
empty_windows = np.empty((256, 144, 3))
然后我想用下面的方法向数组中追加新元素:
for i in range(256):
for j in range(144):
empty_windows[i, j] = np.append(empty_windows[i, j], np.asarray(some_new_array)).reshape(3, )
但它不工作,因为我得到错误消息:值错误:无法将大小为6的数组重新整形为形状(3,)
有什么办法吗?谢谢。
2条答案
按热度按时间xxe27gdn1#
我希望,这将有助于您了解级联3dim阵列
f0brbegy2#
np.empty
和np.append
是危险的函数,它们不是空列表[]
和list.append
的克隆。已经创建了一个带有浮点值的(256,144,3)形状数组-它们是不可预测的,但很可能不是您想要的。请查看该数组,或一个较小的示例,以便您自己查看。另外,请阅读
np.empty
docs.np.zeros
,如有必要,请重新阅读。对于标量
i,j
,是(3)形阵列或槽。
当你用另一个(3,)shape对它进行
np.append
运算时,结果是一个(6,)shape,前3个值是empty_window
中的“随机”值,这个错误很清楚地告诉你,它不能把一个(6,)shape数组放到一个只容纳(3,)的插槽中。您的目标并不明确,但是您不能通过这种“逐行”追加将(n,m,3)形状数组增长到(n,m,6)。
您可以使用新值设置“行”,如下所示: