我希望能将一个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字符串格式化机制适用于单个数字(以及数字元组),而不是数组。 - hpaulj