我正在使用 Python 3.2.3 和 NumPy 1.6.1。如果有人能解释一下当我尝试(以两种不同的方式)访问 NumPy 数组的元素时 NumPy 做了什么,我将不胜感激。
代码:
import numpy as np
class MyClass:
def __init__(self,q):
self.coord = q
self.firstel = q[0]
self.secondel = q[1:2]
q = np.array([10,20]) # numpy array
my_object = MyClass(q) # object of MyClass
print('original','q:',q,' / coord:',my_object.coord,' / 2elements:',my_object.firstel,my_object.secondel])
q[0],q[1] = 30,40 # modification of the elements of q
print('modified','q:',q,' / coord:',my_object.coord,' / elements:', my_object.firstel, my_object.secondel])
q
是一个 numpy 数组,我将其作为参数传递给MyClass
. 我将它存储在类内部的一个变量coord
中。q
然后我在类中以两种不同的方式访问第一个和第二个元素。
当我运行上面的代码时,我得到了这个:
original q: [10 20] / coord: [10 20] / elements: [10, array([20])]
modified q: [30 40] / coord: [30 40] / elements: [10, array([40])]
更改时变量firstel
不会更新q
,但变量secondel
是。
q[0]
和发生了什么q[1:2]
?
谢谢