【发布时间】:2021-05-28 07:48:28
【问题描述】:
我有一个 numpy 数组,其中每个数字都有一定的指定精度(使用 around(x,1)。
[[ 3. 15294.7 32977.7 4419.5 978.4 504.4 123.6]
[ 4. 14173.8 31487.2 3853.9 967.8 410.2 107.1]
[ 5. 15323.5 34754.5 3738.7 1034.7 376.1 105.5]
[ 6. 17396.7 41164.5 3787.4 1103.2 363.9 109.4]
[ 7. 19665.5 48967.6 3900.9 1161. 362.1 115.8]
[ 8. 21839.8 56922.5 4037.4 1208.2 365.9 123.5]
[ 9. 23840.6 64573.8 4178.1 1247. 373.2 131.9]
[ 10. 25659.9 71800.2 4314.8 1279.5 382.7 140.5]
[ 11. 27310.3 78577.7 4444.3 1307.1 393.7 149.1]
[ 12. 28809.1 84910.4 4565.8 1331. 405.5 157.4]]
我正在尝试将每个数字转换为字符串,以便我可以使用 python-docx 将它们写入单词表。但是 tolist() 函数的结果是一团糟。数字的精度会丢失,导致输出很长。
[['3.0',
'15294.7001953',
'32977.6992188',
'4419.5',
'978.400024414',
'504.399993896',
'123.599998474'],
['4.0',
'14173.7998047',
'31487.1992188',
'3853.89990234',
'967.799987793',
'410.200012207',
'107.099998474'],
.......
除了 tolist() 函数,我还尝试了 [[str(e) for e in a] for a in m]。结果是一样的。这很烦人。如何在保持精度的同时轻松转换为字符串?谢谢!
【问题讨论】:
-
你的数组是单精度(
np.float32)吗? -
是的,它是 float32。有问题吗?
-
查看我的答案,或@HenryGomersall 的答案
标签: numpy