NumPy优于常规Python列表有什么优势?
我有大约100个金融市场系列,我打算创建一个100x100x100 = 100万个单元的立方体阵列.我将使用每个y和z对每个x进行回归(3变量),以使用标准错误填充数组.
我听说过,对于"大型矩阵",出于性能和可伸缩性的原因,我应该使用NumPy而不是Python列表.事实是,我知道Python列表,它们似乎对我有用.
如果我搬到NumPy,会有什么好处?
如果我有1000个系列(即立方体中有10亿个浮点单元)怎么办?
在 Python 中使用数据类型 numpy 数组时,我遇到了一些困惑。
问题1
我在 python 解释器中执行以下脚本
>>> import numpy as np
>>> L = [1000,2000,3000]
>>> A = np.array(L)
>>> B = A
Run Code Online (Sandbox Code Playgroud)
然后我检查以下事项:
>>> A is B
True
>>> id(A) == id(B)
True
>>> id(A[0]) == id(B[0])
True
Run Code Online (Sandbox Code Playgroud)
没关系。但随后发生了一些奇怪的事情。
>>> A[0] is B[0]
False
Run Code Online (Sandbox Code Playgroud)
但是 A[0] 和 B[0] 怎么可能是不同的东西呢?他们有相同的id!对于 python 中的列表,我们有
>>> LL = [1000,2000,3000]
>>> SS = LL
>>> LL[0] is SS[0]
True
Run Code Online (Sandbox Code Playgroud)
numpy数组的存储方式和list完全不一样?而且我们还有
>>> A[0] = 1001
>>> B[0]
1001
Run Code Online (Sandbox Code Playgroud)
看起来 A[0] 和 B[0] …