为了账号安全,请及时绑定邮箱和手机立即绑定

如何在没有科学符号和给定精度的情况下漂亮地打印numpy.Array?

如何在没有科学符号和给定精度的情况下漂亮地打印numpy.Array?

侃侃无极 2019-07-04 13:10:59
如何在没有科学符号和给定精度的情况下漂亮地打印numpy.Array?我很好奇,有没有办法打印格式化的numpy.arrays,例如,以类似的方式:x = 1.23456print '%.3f' % x如果我想打印numpy.array在浮标中,它打印了几个小数,通常是“科学”格式,即使对于低维数组,也很难读懂。然而,numpy.array显然必须以字符串的形式打印,即用%s..有解决办法吗?
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

你可以用set_printoptions若要设置输出的精度,请执行以下操作:

import numpy as np
x=np.random.random(10)print(x)# [ 0.07837821  0.48002108  0.41274116  0.82993414  0.77610352  0.1023732#   0.51303098 
 0.4617183   0.33487207  0.71162095]np.set_printoptions(precision=3)print(x)# [ 0.078  0.48   0.413  0.83   0.776  0.102 
  0.513  0.462  0.335  0.712]

suppress禁止对小数使用科学符号:

y=np.array([1.5e-10,1.5,1500])print(y)# [  1.500e-10   1.500e+00   1.500e+03]np.set_printoptions(suppress=True)print(y)
# [    0.      1.5  1500. ]

集打印文档其他选择。


在本地应用打印选项,使用NumPy 1.15.0或更高版本,您可以使用numpy.printoptions上下文管理器。例如,在with-suite precision=3suppress=True设置如下:

x = np.random.random(10)with np.printoptions(precision=3, suppress=True):
    print(x)
    # [ 0.073  0.461  0.689  0.754  0.624  0.901  0.049  0.582  0.557  0.348]

但在with-suite打印选项返回到默认设置:

print(x)    # [ 0.07334334  0.46132615  0.68935231  0.75379645  0.62424021  0.90115836#   0.04879837  0.58207504  
0.55694118  0.34768638]

如果您使用的是NumPy的早期版本,您可以自己创建上下文管理器。例如,

import numpy as npimport contextlib@contextlib.contextmanagerdef printoptions(*args, **kwargs):
    original = np.get_printoptions()
    np.set_printoptions(*args, **kwargs)
    try:
        yield
    finally: 
        np.set_printoptions(**original)x = np.random.random(10)with printoptions(precision=3, suppress=True):
    print(x)
    # [ 0.073  0.461  0.689  0.754  0.624  0.901  0.049  0.582  0.557  0.348]

为了防止零从浮动结束时被剥离:

np.set_printoptions现在有一个formatter参数,该参数允许为每种类型指定格式函数。

np.set_printoptions(formatter={'float': '{: 0.3f}'.format})print(x)

哪种指纹

[ 0.078  0.480  0.413  0.830  0.776  0.102  0.513  0.462  0.335  0.712]

而不是

[ 0.078  0.48   0.413  0.83   0.776  0.102  0.513  0.462  0.335  0.712]


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 805 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信