我使用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