的說明已經在這裏是正確的。但是,因爲我想以類似的方式濫用python,所以我將提交此方法作爲解決方法。
從列表中調用特定元素直接返回列表中該元素的值的副本。即使複製列表的子列表也會返回對包含值的副本的數組的新引用。考慮下面這個例子:
>>> a = [1, 2, 3, 4]
>>> b = a[2]
>>> b
3
>>> c = a[2:3]
>>> c
[3]
>>> b=5
>>> c[0]=6
>>> a
[1, 2, 3, 4]
無論b
,值只複製,也不c
,從a
複製子列表,能夠改變a
值。儘管它們有共同的起源,但沒有聯繫。
但是,numpy數組使用「raw-er」內存分配並允許返回數據視圖。視圖允許以不同方式表示數據,同時保持與原始數據的關聯。因此,一個工作示例是
>>> import numpy as np
>>> a = np.array([1, 2, 3, 4])
>>> a
array([1, 2, 3, 4])
>>> b = a[2]
>>> b
3
>>> b=5
>>> a
array([1, 2, 3, 4])
>>> c = a[2:3]
>>> c
array([3])
>>> c[0]=6
>>> a
array([1, 2, 6, 4])
>>>
雖然提取單個元件仍然值只,保持元件2
的陣列視圖被引用到原始元素的a
2
副本(雖然現在元件的c
0
),並且對c
的值進行的更改也會更改爲a
。
Numpy ndarray
s有許多不同的類型,包括一個通用的對象類型。這意味着您可以爲幾乎任何類型的數據維護此「引用」行爲,而不僅僅是數值。
來源
2016-09-08 18:26:46
KDN
沒有語法來完成你所要求的,但是有很多方法可以修改列表的一部分。如果你問一個關於你正在使用的具體問題的問題,有人會想出最直觀,最優雅的解決方案。 – alexis