python - 分配给 numpy 结构化数组
问题描述
如何分配给 numpy 结构化数组?
import numpy as np
baz_dtype = np.dtype([("baz1", "str"),
("baz2", "uint16"),
("baz3", np.float32)])
dtype = np.dtype([("foo", "str"),
("bar", "uint16"),
("baz", baz_dtype)])
xx = np.zeros(2, dtype=dtype)
xx["foo"][0] = "A"
这里xx
保持不变。文档https://docs.scipy.org/doc/numpy/user/basics.rec.html对此有点模糊。
在相关说明中,是否可以使一个或多个子类型成为指定 dtype 的列表或 numpy 数组?
欢迎任何提示。
解决方案
您正在正确执行任务。你搞砸的部分是dtypes。NumPy 字符串 dtype 是固定大小的,如果您尝试"str"
用作 dtype,它将被视为大小 0 - 空字符串是唯一可能的值!您"A"
会被截断为 0 个字符以适应。
指定一个大小——例如,'S10'
是 10 字节的字节串,或者'U10'
是 10 个码点的 unicode 字符串——或者用于object
存储普通 Python 字符串对象并避免长度限制和'\0'
作为空终止符的处理。
推荐阅读
- javascript - 如何在一个 javascript 函数中调用多个 window.location.href?
- android - 我面临一个带有 mlkit 对象检测的 java.lang.OutOfMemoryError
- python - 出于某种原因,我的代码在读取文件时没有前进
- c++ - 是否可以更改从哪些“侧”对象添加到具有相同优先级的优先级队列中?
- android - 在 Android Studio 中启动 AVD 时出现错误 1073741819
- kubernetes - AWS EKS 节点 - 卷附加限制
- angular - 失败:Microsoft.AspNetCore.SpaServices[0]
- android - 如何创建一组前台通知?
- css - 如何减去元素样式已经定义的高度大小?
- latex - Latex Beamer 自定义“超出”幻灯片编号