为了将许多三维点坐标元组存储在努比·恩达雷在为每个特性输入循环之前,我初始化一个空的numpy数组。在
为此,我在进入循环之前执行以下操作:
import numpy as np
pointsarrray = np.empty((1,3))
但这会导致数组几乎为空:
^{pr2}$在之后的循环中填充pointsarray
时,我会执行以下操作:
pointsarray = np.vstack((pointsarray, [np.array(myPoint)]))
(它也适用于np.追加)在
最后我需要在退出循环后删除数组的第一行,因为第一行总是包含初始化步骤中的值!在
这没什么大不了的,但我想知道是否有一种更干净的方法来实现一个真的空数组,我的意思是,在没有任何内容的情况下(它显示了1行,我不知道为什么),但是在正确的维度上?在
您需要形状为
(0, 3)
,这样您就有了正确的列数来堆叠,但实际上里面没有数据:也许是这个名字让你困惑,但是^{}s documentation 解释了发生了什么:
因此,它只是不初始化条目(有时它们是随机的有时它们是零),而empty只表示条目的值而不是数组的形状。在
但是,通过追加或堆叠来创建数组对性能非常不利。只需将它们收集到一个列表中,然后创建数组:
相关问题 更多 >
编程相关推荐