Numpy 如何创建5字节元素的3D数组,以便与“共享”;pool.map“;

Numpy 如何创建5字节元素的3D数组,以便与“共享”;pool.map“;,numpy,multidimensional-array,python-multiprocessing,Numpy,Multidimensional Array,Python Multiprocessing,在使用Python 3.9.4和NumPy 1.20.1的WIndows 10 Pro上: 我能够创建一个固定的5字节元素的3D数组(尽管我对NumPy的了解很少,但它可以通过pool.map在多处理函数中进行只读访问)。元素包含ASCII字符(该数组有意比使用np.dtype('U5')的数组小得多,后者使用大约20个字节来存储5个unicode字符,这是浪费) 我现在想让它可以在多处理函数中共享读写,大概是使用multiprocessing.sharedTypes.Array。但是,我无法通

在使用Python 3.9.4和NumPy 1.20.1的WIndows 10 Pro上:

我能够创建一个固定的5字节元素的3D数组(尽管我对NumPy的了解很少,但它可以通过
pool.map
在多处理函数中进行只读访问)。元素包含ASCII字符(该数组有意比使用
np.dtype('U5')
的数组小得多,后者使用大约20个字节来存储5个unicode字符,这是浪费)

我现在想让它可以在多处理函数中共享读写,大概是使用
multiprocessing.sharedTypes.Array
。但是,我无法通过以下代码,因为它总是给出错误(当前错误:
TypeError:此类型没有大小
),但是我修改了它:

from multiprocessing.sharedctypes import Array
import numpy as np

np_array = np.chararray((5,31,4),5)
X_np = Array(np.ubyte(5), 5*31*4, lock=False)
所以有些地方出了大问题,但我看不出来。任何建议都值得赞赏(因为互联网上的大多数示例似乎都有整数或浮点类型的数组)