-1
私はPythonの初心者であり、配列型の違いを理解しようとしています。PythonリストとNumPyリスト出力
この例では、最終的に出力が異なることを理解できませんでした。 2つのコードの動作が異なるのはなぜですか?
私はPythonの初心者であり、配列型の違いを理解しようとしています。PythonリストとNumPyリスト出力
この例では、最終的に出力が異なることを理解できませんでした。 2つのコードの動作が異なるのはなぜですか?
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)