2017-03-04 14 views
-1

私はPythonの初心者であり、配列型の違いを理解しようとしています。PythonリストとNumPyリスト出力

この例では、最終的に出力が異なることを理解できませんでした。 2つのコードの動作が異なるのはなぜですか?

Code Example

答えて

0

numpyそれはリスト(配列)を処理する方法にはPythonとは異なります。 numpyは、データバッファをそのままにして、新しいコピーを作成しないようにします。一方、Pythonは新しいオブジェクトを作成します。あなたが行うと:

>>> a = list('1234') 
>>> a 
['1', '2', '3', '4'] 
>>> b = a[1:3] 
>>> b[0] = 1 
>>> b 
[1, '3'] 
>>> a 
['1', '2', '3', '4'] 

bを変更b = a[1:3]は、新しいオブジェクトを作成するため、aに影響を与えませんでした。しかし、あなたがnumpy、中:dが使用しているcのと同じバッファへビューあるので

>>> import numpy as np 
>>> c = np.array(a) 
>>> c 
array(['1', '2', '3', '4']) 
>>> d = c[1:3] 
>>> d 
array(['2', '3']) 
>>> d[0] = 1 
>>> c 
array(['1', '1', '3', '4']) 

dを修正し、は、変更cをしました。

Source

関連する問題