Python FiPy设置初始栅格值
我是一个用例,需要将值从2D Numpy数组转换到2D FiPy网格,然后使用该网格求解系统 我的代码如下:Python FiPy设置初始栅格值,python,numpy,fipy,Python,Numpy,Fipy,我是一个用例,需要将值从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 <
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))
范围(0,大小[0])内的x的:
对于范围(0,大小[1])中的y:
source.setValue(tmpSource.getGrid()[x][y],其中=(xx)&(y>y)&(yx)&(y>y)&(y
其中,tmpSource和tmpSink称为Numpy数组
虽然这种方法有效,但运行速度非常慢。有没有人对其他方法有什么建议,可以让它更快
谢谢 您说的是“转置”,但您的示例似乎是一个简单的数据传输,没有交换数据轴或数据范围。将值从2D numpy数组移动到Grid2D上定义的FiPy CellVariable中应该与展平数组一样简单:
source.value = tmpSource.getGrid().flatten()
sink.value = tmpSink.getGrid().flatten()
您说的是“转置”,但您的示例似乎是一个简单的数据传输,没有交换数据轴或数据范围。将值从2D numpy数组移动到Grid2D上定义的FiPy CellVariable中应该与展平数组一样简单:
source.value = tmpSource.getGrid().flatten()
sink.value = tmpSink.getGrid().flatten()
你是对的,转置是一个错误的词语选择,我很抱歉:)你的解决方案有效,谢谢!你是对的,转置是一个错误的词语选择,我很抱歉:)你的解决方案有效,谢谢!