小编Chr*_*Fro的帖子

如果满足条件,则替换Numpy元素

我需要操作一个大的numpy数组,以便在满足条件时将每个元素更改为1或0(稍后将用作像素掩码).数组中有大约800万个元素,我的当前方法对于缩减管道来说需要太长时间:

for (y,x), value in numpy.ndenumerate(mask_data): 

    if mask_data[y,x]<3: #Good Pixel
        mask_data[y,x]=1
    elif mask_data[y,x]>3: #Bad Pixel
        mask_data[y,x]=0
Run Code Online (Sandbox Code Playgroud)

是否有一个numpy函数可以加快这个速度?

python arrays conditional numpy

69
推荐指数
3
解决办法
11万
查看次数

多处理for循环?

我有一个数组(称为data_inputs)包含数百个天文图像文件的名称.然后操纵这些图像.我的代码工作,需要几秒钟来处理每个图像.但是,它一次只能执行一个图像,因为我通过for循环运行数组:

for name in data_inputs:
    sci=fits.open(name+'.fits')
    #image is manipulated
Run Code Online (Sandbox Code Playgroud)

我没有理由在任何其他图像之前修改图像,因此可以在我的机器上使用所有4个核心,每个核心在不同的图像上运行for循环吗?

我已经阅读了关于multiprocessing模块的内容,但我不确定如何在我的情况下实现它.我渴望开始multiprocessing工作,因为最终我必须在10,000多张图片上运行它.

python multiprocessing

54
推荐指数
3
解决办法
8万
查看次数

标签 统计

python ×2

arrays ×1

conditional ×1

multiprocessing ×1

numpy ×1