numpy - 如何创建 5 字节元素的 3D 数组以与“pool.map”共享使用
问题描述
在带有 Python 3.9.4 和 NumPy 1.20.1 的 WINdows 10 Pro 上:
pool.map
我能够创建一个由固定 5 字节元素组成的 3D 数组(尽管我对 NumPy 知之甚少,但它可以在多处理函数中进行只读访问)。元素包含 ASCII 字符(数组故意比np.dtype('U5')
使用大约 20 个字节来存储 5 个 unicode 字符小得多,这很浪费)。
我现在想让它在多处理函数中可共享以供读写使用,大概是使用multiprocessing.sharedctypes.Array
. 但是我无法通过以下代码,因为它总是给出错误(当前错误:)TypeError: this type has no size
,但是我对其进行了修改:
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)
所以有些事情是严重错误的,但我看不到它。任何建议表示赞赏(因为 Internet 中的大多数示例似乎都有整数或浮点类型的数组)。
解决方案
推荐阅读
- python - 通过python最快的ping方法?
- python - 熊猫有条件地设置列值
- bootstrap-4 - 带有 Angular 的 Bootstrap 4 药丸 - 保持活动链接
- html - 定位剪辑路径而不定位剪辑元素
- reactjs - PropTypes.node 在 React 中给出了一个意外的不匹配错误
- windows - Dockerfile vs 从容器创建镜像
- excel - SSRS Excel 导出。多标签
- python - Openpyxl Pip 安装错误:命令出错
- r - R data.table 有条件地按组聚合行
- javascript - 如何在没有 try/catch 块的情况下使用异步 lambda 并且仍然有自定义错误消息?