2016-05-30 12 views
2

私はPythonでnumpy/slicingに関するいくつかの質問があります。ループの結果と異なるナンシースライス結果

誰も説明できるのですが、次のforループとスライシングアプローチが同じBにならない理由は何ですか?

for n in range(1,N-1): 
    B[n,i] = -(2*x[n,i] - x[n-1,i] - x[n+1,i]) 

B[1:N-2,i] = -(2*x[1:N-2,i] - x[0:N-3,i] - x[2:N-1,i]) 
+0

Hmの範囲は、1、2からN-2までの範囲になります。多くのスライスとインデックスは、より多くの文脈なしに私を刺激しています。 N == 4のためにこれらの2つのアルゴリズムを実行すると言う、最小限の完全なPythonスクリプトを提供することは可能でしょうか?それは素晴らしいだろう! – Dilettant

答えて

2

範囲が右側に非包括的であるため、私はあなたがそれがループのバージョンを一致させるために

B[1:N-1,i] = -(2*x[1:N-1,i] - x[0:N-2,i] - x[2:N,i]) 

にごnumpyのコードを変更する必要があるだろうと仮定します。