我有一个大的3d np.ndarray数据,表示以常规网格方式在卷上采样的物理变量(如数组[0,0,0]中的值表示物理坐标系中的值(0,0,0) )).
我想通过在粗网格中插入数据来获得更精细的网格间距.目前我正在使用scipy griddata线性插值,但它很慢(对于20x20x20阵列,约为90秒).为了我的目的,它有点过度设计,允许随机采样体积数据.有什么东西可以利用我的常规间隔数据,以及我想插入的只有一组有限的特定点吗?
我有一个numpy的大型三维数组(比方说大小为100x100x100).我想迭代它的一部分很多次(大约70%的元素),我有一个大小相同的布尔矩阵,并定义元素是否应该完成操作.
我目前的方法是首先创建一个形状(N,3)的数组"coords",其中包含所有操作的坐标,然后
for i in np.arange(many_iterations):
for j in coords:
large_array[j] = do_something(large_array[tuple(j)])
Run Code Online (Sandbox Code Playgroud)
实际上,评估整个数组并在循环中包含一个额外的操作来测试布尔数组是否更好(请记住,事实评估然后是多次而不是一次).我的想法是,在这种情况下的回报将摆脱for循环
large_array = do_something(large_array if condition True)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如何使最后一行工作?