これは私が今日持っていた以前の質問に基づく知識トピックです。これらは、私が目撃した気味の悪い行動のいくつかの奇妙な不一致です。Numpy Indexing - 奇妙な行動/不一致に関する質問
まず、あなたはこのコードを実行する場合:
A = ones((10,4))
view = A[:,1]
view.fill(7)
A
この配列は0からインデックス化され、スライスは、単に同じ行列の図であるとして、すべての7Sへの第二の列を変更します。素晴らしいです、それはまさに私が起こりたいものです。今
、あなたはこの実行する場合:
A = ones((10,4))
view = A[:,1:2]
view.fill(7)
A
をそれが最初の例と同様の効果があるでしょう。 a:bはaからb-1までの列を指定するのはなぜですか?これには具体的な理由がありますか?あなたはこの実行している場合ではない1と2
最後に、 - 私の列1、2を与える必要があります3、および3:
A = ones((10,4))
view = A[:,(1,2)]
view.fill(7)
A
を一切側はありません私が入力が言うならば、1がいるようですタプルを使用してビューを作成した場合、オリジナルの行列にそれ以上の副作用が正しく反映されないようです。どんな洞察?
非常に良いEdsger Dijkstraの読書:http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF –