相关疑难解决方法(0)

插值/调整3D数组的大小

我有一个3D阵列,可以保存mri数据集中的体素.该模型可以沿着一个或多个方向获得.例如,体素尺寸(x,y,z)可以是0.5,0.5,2mm.现在我想将3D阵列重新采样为一个容纳1,1,1 mm体素的阵列.为此,我需要使x/y尺寸更小,z尺寸更大并插入体素值.我的问题是:在numpy或scipy中是否有一个简单的函数可以对一个简单的3d数组进行重新采样?

从*.nii文件加载模型:

img = nib.load(sFileName)
array = np.array(img.dataobj).astype("uint8") # 3d array with e.g. 0.5,0.5,2 mm
# TODO resample
Run Code Online (Sandbox Code Playgroud)

python numpy scipy

4
推荐指数
1
解决办法
8515
查看次数

在Python中插入一个3d数组.如何避免for循环?

我有一个数组,我想插入第一轴.目前我正在这样做:

import numpy as np
from scipy.interpolate import interp1d

array = np.random.randint(0, 9, size=(100, 100, 100))
new_array = np.zeros((1000, 100, 100))
x = np.arange(0, 100, 1)
x_new = np.arange(0, 100, 0.1)

for i in x:
    for j in x:
        f = interp1d(x, array[:, i, j])
        new_array[:, i, j] = f(xnew)
Run Code Online (Sandbox Code Playgroud)

我使用的数据表示域中每个纬度和经度的10年5天平均值.我想创建一个每日值数组.

我也尝试过使用样条线.我真的不知道它们是如何工作的,但速度并不快.

有没有办法在不使用for循环的情况下执行此操作?如果必须使用for循环,还有其他方法可以加快速度吗?

提前感谢您的任何建议.

python arrays interpolation numpy scipy

3
推荐指数
2
解决办法
2297
查看次数

标签 统计

numpy ×2

python ×2

scipy ×2

arrays ×1

interpolation ×1