Matlabの次の単純なコードのpyononicの実装と同等のものは何ですか?Python:多次元配列のマスキング
Matlabの:例えばB[i]=42
ことがカラム5
の位置2
を設定すると認めるようにうまく機能
B = 2D array of integers as indices [1...100]
A = 2D array of numbers: [10x10]
A[B] = 0
。 Pythonのでは、エラーが発生します。論理あるバウンドのうち。しかし、上記のMatlabコードをPythonに変換するには、Pythonの方法を探しています。 ものような高次元のための問題を考慮してください:
B = 2D array of integers as indices [1...3000]
C = 3D array of numbers: [10x10x30]
C[B] = 0
我々はそれについて考えた一つの方法は、i,j
代わりの絶対位置としてのインデックスの配列要素を改革することです。つまり、位置42
〜divmod(42,m=10)[::-1] >>> (2,4)
です。だからA
の索引付けに簡単に使用できるインデックスのベクトルnx2 >>> ii,jj
があります。 Pythonで高次元でも効果的な方法であると考えました。
を使用することができます論理的な「束縛」...これは何を引き起こすのでしょうか?あなたはPythonで試したことを見せてくれますか? –
なぜ2D配列を別の2D配列のインデックスとして使用していますか? – 0605002
@LaurenceGonsalves質問で述べたように、A.shape =(10,10)なので、A [42]によるインデックス作成は合法ではありません!これはMatlabコードでは42と2行目と4列目を自動的に一致させるためではありません。 – Developer