把数字和字符串放在同一个数组中。但是,我很少(很难复制,但有时)遇到错误,即数字到字符串的转换导致值无法返回到十进制(即,我得到“9.8267567e”,而不是数组中的“9.8267567e-5”)。这会导致写入文件后出现问题。以下是我正在做的事情的一个例子(尽管规模小得多):
import numpy as np
x = np.array(.94749128494582)
y = np.array(x, dtype='|S100')
我的理解是,这应该允许100个字符串字符,但有时我会看到~10个字符后的截止。我是否应该分配另一种类型,或者限制数组(x)中字符数的方法?在
首先,
x = np.array(.94749128494582)
可能没有像您所想的那样做,因为传递到np.array
的参数应该是某种序列或带有数组接口的东西。也许你是说x = np.array([.94749128494582])
?在现在,为了正确地保存字符串,可以使用
然而,正如Joe在他的评论中提到的,它不是非常numpythonic,而且您也可以使用普通的老python列表。在
我建议您仔细检查一下,为什么您似乎有这样的要求,即在同一个数组中保存字符串和数字,这让我觉得您可能设置了不适当的数据结构,并且可以从重新设计/重构中获益。
numpy
数组用于快速的数值运算,它们并不真正适合用于字符串操作或用作某种存储/数据库。在相关问题 更多 >
编程相关推荐