【发布时间】:2019-12-15 09:47:35
【问题描述】:
我想将 numpy 数组转换为具有给定格式的字符串表示形式。这个
from io import BytesIO
import numpy
data = numpy.random.rand(5)
s = BytesIO()
numpy.savetxt(s, data, "%.15e")
out = s.getvalue().decode()
print(out)
3.208726298090422e-01
6.817590490300521e-01
3.446035342640975e-01
7.871066165361260e-01
4.829308426574872e-01
有效,但savetxt 很慢。 tofile 大约快两倍,但我不知道如何让它与 BytesIO 一起工作。也许还有另一种选择。
有什么提示吗?
【问题讨论】:
-
savetxt通过复制%...以匹配data中的列数来创建fmt字符串。然后它执行fmt % tuple(row)。 Python 字符串格式化机制适用于单个数字(以及扩展的数字元组),而不适用于数组。 -
只是好奇,不是使用 BytesIO,.npy 文件,即字节编码格式的 np.save 不会做你的工作吗?
-
@SayandipDutta 我不想要文件,我想要字符串。
标签: python arrays string numpy