我是一个用例,我需要将值从2D Numpy数组转换为2D FiPy网格,然后用于解决系统。
我的代码如下:
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))
其中tmpSource和tmpSink是Numpy数组。
虽然这种方法有效但运行速度极慢。有没有人对可以加快速度的替代方法有任何建议?
谢谢!
答案 0 :(得分:2)
你说&#34;转置&#34;,但你的例子似乎是一个简单的数据传输,没有交换轴或数据范围。将2D numpy数组中的值移动到Grid2D上定义的FiPy CellVariable应该像展平数组一样简单:
source.value = tmpSource.getGrid().flatten()
sink.value = tmpSink.getGrid().flatten()