我正在开发一个项目,该项目在很大程度上依赖于相当小的2D Numpy数组来表示我们的数据(在最差的情况下,小的大约是100 x 4)。这种表示的问题是,由于问题的背景,维护起来很糟糕,并且容易出错,因此非常麻烦且不清楚。例如,我在当前任务中,在这些数组的上下文中,需要添加和删除多行,并分配大量的行。我认为面向对象,基于图形的方法在我的最终会更清晰,对于未来的开发更为通用。在坐下来设计纸上的大部分功能之后,可能会有5或6个带有内部词典的较大类(表示图形的邻接列表),这样就不需要Numpy数组,而且可以更清晰地解释。
众所周知,Numpy阵列在索引速度和大多数其他功能方面将Python数据结构从水中吹走。但是,我也知道Python字典经过高度优化,并且本身效率很高。我的困境是,重新分配许多Numpy数组和来回复制值是否比一些可以在不重新分配的情况下轻松编辑的持久类更有效或更低效,但索引时间比Numpy数组慢。
值得注意的是,除了np.where()
之外,我没有使用Numpy的大部分功能,必要时可以使用它们。此外,算法不是按照数组的大小缩放,而是在数组的 number 中缩放;一个更难的问题将有更多的数组,但不一定更大。
谢谢!