Python中限制数字位数

2024-06-09 04:49:13 发布

您现在位置:Python中文网/ 问答频道 /正文

把数字和字符串放在同一个数组中。但是,我很少(很难复制,但有时)遇到错误,即数字到字符串的转换导致值无法返回到十进制(即,我得到“9.8267567e”,而不是数组中的“9.8267567e-5”)。这会导致写入文件后出现问题。以下是我正在做的事情的一个例子(尽管规模小得多):

import numpy as np
x = np.array(.94749128494582)
y = np.array(x, dtype='|S100')

我的理解是,这应该允许100个字符串字符,但有时我会看到~10个字符后的截止。我是否应该分配另一种类型,或者限制数组(x)中字符数的方法?在


Tags: 文件字符串importnumpyas错误np数字
1条回答
网友
1楼 · 发布于 2024-06-09 04:49:13

首先,x = np.array(.94749128494582)可能没有像您所想的那样做,因为传递到np.array的参数应该是某种序列或带有数组接口的东西。也许你是说x = np.array([.94749128494582])?在

现在,为了正确地保存字符串,可以使用

y = np.array(x, dtype=object)

然而,正如Joe在他的评论中提到的,它不是非常numpythonic,而且您也可以使用普通的老python列表。在

我建议您仔细检查一下,为什么您似乎有这样的要求,即在同一个数组中保存字符串和数字,这让我觉得您可能设置了不适当的数据结构,并且可以从重新设计/重构中获益。numpy数组用于快速的数值运算,它们并不真正适合用于字符串操作或用作某种存储/数据库。在

相关问题 更多 >