小编Eri*_*ang的帖子

关于Python中numpy数组如何存储的一些困惑

在 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] …

python arrays numpy

5
推荐指数
1
解决办法
1278
查看次数

标签 统计

arrays ×1

numpy ×1

python ×1