我想在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核心,但执行没有完成,并且不打印数组.如果我尝试将数组写入磁盘,则没有任何反应.
谁能告诉我为什么?