开发者社区> 问答> 正文

与常规Python列表相比,NumPy有什么优势?

与常规Python列表相比,NumPy有什么优势?

我大约有100个金融市场系列,我将创建一个100x100x100 = 1百万个单元的多维数据集阵列。我将每个x与y和z回归(3变量),以用标准误差填充数组。

我听说对于“大型矩阵”,出于性能和可伸缩性的原因,我应该使用NumPy而不是Python列表。事实是,我知道Python列表,它们似乎对我有用。

如果我转到NumPy,会有什么好处?

如果我有1000个序列(即立方体中有10亿个浮点单元)怎么办?

展开
收起
保持可爱mmm 2020-01-14 14:52:55 1779 0
2 条回答
写回答
取消 提交回答
  • 强!

    这两个不是一个纬度的东西。

    多线程并行科学计算用NumPy

    2020-01-31 20:37:25
    赞同 展开评论 打赏
  • NumPy的数组比Python列表更紧凑-您在Python中描述的列表列表至少需要20 MB左右,而单元格中具有单精度浮点数的NumPy 3D数组则需要4 MB。使用NumPy可以更快地读取和写入项目。

    也许您只关心一百万个单元格就不会那么在意,但您肯定会关心十亿个单元格-这两种方法都不适合32位体系结构,但是如果使用64位版本,NumPy可以节省大约4 GB的内存,仅Python就需要至少约12 GB(很多指针的大小加倍),这是一个昂贵得多的硬件!

    差异主要是由于“间接性”所致-Python列表是指向Python对象的指针的数组,每个指针至少4个字节,即使最小的Python对象也至少包含16个字节(类型指针为4,引用计数为4,类型为4值-内存分配器舍入为16)。NumPy数组是统一值的数组-单精度数字每个占用4个字节,双精度数字每个占用8个字节。灵活性较差,但您需要为标准Python列表的灵活性付出巨大的代价!

    问题来源于stack overflow

    2020-01-14 14:53:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载