gpt4 book ai didi

python structured/recarray 类型转换行为

转载 作者:太空狗 更新时间:2023-10-30 01:00:31 26 4
gpt4 key购买 nike

构造结构化/重载数组时,我对类型转换的行为感到困惑:

这个简单的示例接受数字字段,但将类型定义为字符串:

data = [(1.0, 2), (3.0, 4)]
np.array(data, dtype=[('x', str), ('y', int)])

产生:

array([('', 2), ('', 4)], dtype=[('x', 'S'), ('y', '<i8')])

因此值被转换为空字符串,这不是您所期望的:

str(1.0)

生成字符串 '1.0'。是什么导致了这种行为?

最佳答案

您需要指定字符串宽度,例如'a3':

>>> np.array([(1.0, 2),(3.0,4)],dtype=[('x','a3'),('y',int)])
array([('1.0', 2), ('3.0', 4)],
dtype=[('x', 'S3'), ('y', '<i4')])

仅使用 str 就有效地意味着一个 0 字节的字符串字段——这当然太小而无法容纳 float 的字符串再现。

关于python structured/recarray 类型转换行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34625473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com