如何以类似于以下方式打印格式化的 NumPy 数组:
x = 1.23456
print('%.3f' % x)
如果我想打印 numpy.ndarray
的浮点数,它会打印几个小数,通常采用“科学”格式,即使对于低维数组也很难阅读。但是, numpy.ndarray
显然必须打印为字符串,即 %s
。有解决方案吗?
原文由 camillio 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何以类似于以下方式打印格式化的 NumPy 数组:
x = 1.23456
print('%.3f' % x)
如果我想打印 numpy.ndarray
的浮点数,它会打印几个小数,通常采用“科学”格式,即使对于低维数组也很难阅读。但是, numpy.ndarray
显然必须打印为字符串,即 %s
。有解决方案吗?
原文由 camillio 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 np.array_str
仅将格式应用于单个打印语句。它给出了 np.set_printoptions
的功能的一个子集。
例如:
In [27]: x = np.array([[1.1, 0.9, 1e-6]] * 3)
In [28]: print(x)
[[ 1.10000000e+00 9.00000000e-01 1.00000000e-06]
[ 1.10000000e+00 9.00000000e-01 1.00000000e-06]
[ 1.10000000e+00 9.00000000e-01 1.00000000e-06]]
In [29]: print(np.array_str(x, precision=2))
[[ 1.10e+00 9.00e-01 1.00e-06]
[ 1.10e+00 9.00e-01 1.00e-06]
[ 1.10e+00 9.00e-01 1.00e-06]]
In [30]: print(np.array_str(x, precision=2, suppress_small=True))
[[ 1.1 0.9 0. ]
[ 1.1 0.9 0. ]
[ 1.1 0.9 0. ]]
原文由 Daniel Golden 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.5k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
使用
numpy.set_printoptions
设置输出的精度:suppress
禁止对小数使用科学记数法:要在本地应用打印选项,使用 NumPy 1.15.0 或更高版本,您可以使用
numpy.printoptions
上下文管理器。例如,在with-suite
precision=3
和suppress=True
设置:但在
with-suite
之外,打印选项恢复为默认设置:如果您使用的是早期版本的 NumPy,您可以自己创建上下文管理器。例如,
为了防止从浮点数的末尾剥离零:
np.set_printoptions
现在有一个formatter
参数,允许您为每种类型指定格式函数。哪个打印
代替