【发布时间】:2017-10-16 08:57:35
【问题描述】:
我想创建一个没有大小规范的动态数组。在该数组中,我需要在我需要的任何位置插入元素。在它们获得分配给它的值之前,它们中的剩余值可以是 null 或 undefined。
例如:
a = np.array([])
np.insert(a, any index value, value)
所以,如果我使用np.insert(a, 5, 1),我应该得到如下结果:
array([null, null, null, null, null, 1])
【问题讨论】:
-
你不能用 numpy 做到这一点
-
您受限于机器的内存容量,因此没有您想要的动态数据结构。但是,如果你想要一个动态数据结构,它可以利用某个点(内存的最大容量)来增加它的大小,这不是你可以用 Numpy 数组做的。
-
您必须为上述实现创建自己的数据结构。您可以使用
None初始化一定大小的数组,并以所需的方式实现插入。如果用户正在访问超出数据结构限制的索引,则可以通过将数组加倍来扩展数组。参考this。 -
用字典怎么样?
-
您确实有 Python 中的标准 array 库,从所有意图和目的来看,它都是一个动态数组。至于你给
insert的具体行为,我怀疑它是否有效(换句话说,我认为插入不会自动添加空值)。我的建议是让你自己实现存储一个 numpy 数组(并使用它的方法来获得你需要的行为)。