当前位置:  开发笔记 > 编程语言 > 正文

python结构化/重新排列类型转换行为

如何解决《python结构化/重新排列类型转换行为》经验,为你挑选了1个好方法。

在构造结构化/重新排列时,我对类型转换的行为感到困惑:

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

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

哪个产生:

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

所以这些值被转换为空字符串,这不是你所期望的:

str(1.0)

哪个产生字符串'1.0'.是什么导致了这种行为?



1> hpaulj..:

您需要指定字符串宽度,例如'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', '

只是str有效地使用意味着一个0字节的字符串字段 - 当然这个字段太小而不能保存float的字符串再现.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有