【发布时间】:2023-03-15 18:55:02
【问题描述】:
我想将二维数组存储为共享内存数组,因此多处理模块创建的每个进程都可以访问二维数组。但似乎只允许使用矢量。如果我将以下示例中的形状从 (6,1) 更改为 (2,3),则示例将不起作用,并显示“TypeError:只有长度为 1 的数组可以转换为 Python 标量”
from multiprocessing import Process, Value, Array
import numpy as np
def f(n,a):
a[:] = np.ones(shape=(6,1), dtype=float)[:]
if __name__ == '__main__':
tmp = np.zeros(shape=(6,1), dtype=float)
print tmp
arr = Array('f', tmp)
p1 = Process(target=f, args=(1,arr))
p1.start()
p1.join()
print 'done'
print arr[:]
【问题讨论】:
标签: python memory-management process multiprocessing shared-memory