如果我只需要1D数组,那么使用NumPy数组而不是Python标准库数组有什么性能和内存大小优势?或者有没有?
假设我拥有至少数千个元素的数组,我希望:快速直接按索引访问时间,我希望尽可能减少内存占用。使用它是否有性能优势:
from numpy import array
a = array([1,2,3,4,5])
对此:
from array import array
a = array('i', [1,2,3,4,5])
标准Python list
具有快速的索引访问时间,但任何array
实现都将具有更小的内存占用。什么是体面的妥协解决方案?
答案 0 :(得分:3)
numpy
非常适合其精美的索引,广播,屏蔽,灵活的内存数据视图,许多数值方法等等。如果您只想要一个容器来保存数据,那么使用array.array
或者为什么不是简单的list
?
我建议您查看numpy tutorial。
答案 1 :(得分:3)
这完全取决于你在做数组时的计划。
>>> from array import array
>>> a = array('i', [1,2,3,4,5])
>>> a + a
array('i', [1, 2, 3, 4, 5, 1, 2, 3, 4, 5])
请注意,标准lib对数组的处理更像是一个可能不合适的序列(或者可能是......只有你可以决定)