我使用Python 3.2.3和NumPy 1.6.1。 如果有人能解释我在尝试访问(以两种不同方式)NumPy数组的元素时,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]
发生了什么?
由于
谢谢!很明显。我期待着这样的事情。只是一个评论:在我的问题中没有真正的“问题”,而是我想了解的两种不同的行为。 – RolPasto