4

NumPy 配列があります。それを と呼びましょうA。次のコードの動作は明確ではありません。

b = A[3,:];
A[3,:] = 0;

3行目は に保存しなければならないのですがb、なんとこれbもゼロに!

ヘルプはありますか?

4

2 に答える 2

2

コピーを作成するには、実際にはcopy!を作成する必要があります。

b = A[3,:].copy()

(ちなみに、python は C ではありません。ステートメントの後にセミコロンは必要ありません。)

于 2012-11-27T16:38:30.473 に答える
2

MATLAB/Octave からの移行ですね :-)?

1) MATLAB の 1 ベースの配列とは対照的に、Python は 0 ベースの配列を使用することに注意してください。 A[3,:]実際には4行目を表示します。

2) MATLAB とは異なり、このように配列からスライスを取得すると、スライスのメモリ位置がスライスからスライサーに格納されます。したがって、Andrew J. が言うように、コピーする必要があります。

「3行目はbに保存する必要がある」というステートメントに基づいて、コードは次のようになります

b = A[2,:].copy()
于 2012-11-28T10:02:16.563 に答える