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