相关疑难解决方法(0)

如何使用Python多处理Pool.map在for循环中填充numpy数组

我想在for循环中填充2D-numpy数组,并使用多处理来固定计算.

import numpy
from multiprocessing import Pool


array_2D = numpy.zeros((20,10))
pool = Pool(processes = 4)

def fill_array(start_val):
    return range(start_val,start_val+10)

list_start_vals = range(40,60)
for line in xrange(20):
    array_2D[line,:] = pool.map(fill_array,list_start_vals)
pool.close()

print array_2D
Run Code Online (Sandbox Code Playgroud)

执行它的效果是Python运行4个子进程并占用4个CPU核心,但执行没有完成,并且不打印数组.如果我尝试将数组写入磁盘,则没有任何反应.

谁能告诉我为什么?

python arrays numpy pool multiprocessing

9
推荐指数
2
解决办法
8036
查看次数

标签 统计

arrays ×1

multiprocessing ×1

numpy ×1

pool ×1

python ×1