我有一个要迭代的 3D numpy 数组。如果它很重要,这是一个 .nii 文件类型(用于存储 MRI 大脑数据的文件),我使用 nipy 模块加载这些图像,然后可以将其作为 numpy 数组处理以进行图像处理。我想通过体素,只包括值<2的体素。这是我的尝试
import nipy
import numpy
img = nipy.load_image('image.nii.gz')
img_manip = img.get_data()
result = numpy.zeros(shape = img_manip.shape, dtype = img_manip.dtype)
for matrix in img_manip:
for row in matrix:
for item in row:
if item < 2:
result += img_manip
这似乎可以工作,但是它非常慢,就像它现在仍在运行一样。我只是想知道,这是正确的方法吗?我应该改用 np.empty 吗?我不确定我在 python 上还是很菜鸟。
编辑:仅供参考,img_manip 的形状类似于 (368, 170, 32),数据类型为 float64
(对不起,我不知道如何让代码看起来像“pythonic”!)