2017-01-04 6 views
0

私は、2D Numpy配列の値を2D FiPyグリッドに転置して、システムを解決する必要があるのです。次のようにFiPy初期グリッド値を設定する

私のコードは次のとおり

tmpSourceとtmpSink前記numpyの配列で
for x in range(0, size[0]): 
      for y in range(0, size[1]): 
       source.setValue(tmpSource.getGrid()[x][y], where=(X < x + 1) & (X > x) & (Y > y) & (Y < y + 1)) 
       sink.setValue(tmpSink.getGrid()[x][y], where=(X < x + 1) & (X > x) & (Y > y) & (Y < y + 1)) 

この方法は有効ですが、実行するのが非常に遅いです。誰かがそれをより速くすることができる代替アプローチについてアドバイスをしていますか?

ありがとうございます!

答えて

2

あなたは "転置"と言っていますが、あなたの例は、軸やデータの範囲を入れ替えずに単純なデータ転送のようです。間違った単語の選択、私の謝罪:)そして、あなたのソリューション、

source.value = tmpSource.getGrid().flatten() 
sink.value = tmpSink.getGrid().flatten() 
+0

そうだね移調したGrid2Dに定義されたFiPy CellVariableに2D numpyの配列から値を移動すると、アレイを平坦化するのと同じくらい簡単でなければなりません作品、ありがとう! – MrD

関連する問題