python输出格式控制_Python编程:设置numpy中数组元素的打印格式,就这么简单

引言

对于Python语言开发者,如果你经常处理大量数据运算的话,numpy是一个必不可少的程序扩展库,它支持大维度数组与矩阵运算,提供了非常丰富的数学运算函数,并且,相对于Python自身提供的列表类型,它在运算速度上有着无与伦比的优势。

在代码调试过程中,我们经常会使用print函数打印查看numpy数组元素的运算结果,那么如何规范或者自定义这种数组的输出格式呢?

函数set_printoptions原型

numpy库中提供了一个函数set_printoptions,通过这个函数可对打印结果进行各种设置。

其函数原型如下图所示:

2fdda3cc7cd98d10fa6454bb7ebd0b0a7aec900b.jpeg?token=f622d3ccfed9bc5de42aabecc3997a0d

从这个函数的参数可看出,通过这个函数可对数组元素的输出精度、元素个数门限值、是否压缩科学计数法表示等等进行设置,甚至也可以通过formatter参数进行数组元素的完全自定义显示。

下面通过例子简单介绍数组元素输出格式的几种常用设置方法。

例1:设置数组精度

如对于数组a = [3.1415926, 1.2, 5.0],要求小数点后保留3位小数,程序代码如下:

faf2b2119313b07ecfef357a5255222796dd8cfc.jpeg?token=3aa54e7cea52fb7414fbb072f6fd5def&s=B285B14C1EA499720EC9A5070000E0C3

代码中提供了两种方式,一种是设置precision参数值为3,但这种方法当末尾为0时会自动省略掉。

另一种方法是使用formatter参数进行自定义设置,该参数是一个字典类型,本例中设置float类型的元素其显示格式强制为3位小数,此时为末尾为0时不会舍去,符合题目要求。

例2:设置打印元素的个数

如对于数组包含0-19共20个元素的数组b,可通过参数threshold的值设置打印元素的个数,程序代码如下:

503d269759ee3d6d35cb71af1d94de264e4adec8.jpeg?token=bfb0abfec4d238f5ef405c216d28c467&s=BA85F1484EA4BF740C6D840B0000E0C0

参数threshold值的意义是,当元素个数大于该值时,会省略显示,只显示两头的数据,中间用省略号代替。

如上面代码中,当threshold值设置为10时,只打印了前后各3个元素的数值。

如果将threshold的值设置为np.nan时, 则无论数组中包含多少元素,都要打印所有的元素值。

例3:设置是否以科学计数法表示

如对于数组c = [1.5e-10, 1.5, 1500],通过设置参数suppress的值,可修改数组元素中的值是否以科学计数法表示,程序代码如下:

a71ea8d3fd1f4134f40f703b7b9d26ced0c85ec5.jpeg?token=4ac991a7c537fd585f87adc510161c28&s=B29431C84D84B7745E515C0E0000E0C2

上面代码中当suppress值设为True时,说明为压缩方式,即不以科学计数法表示。

例4:完全自定义显示

如对于包含5个值为0-1之间的随机数的数组d,根据元素的值打印不同的信息,本例中当值大于0.5时打印“+1”,否则打印“-1”,程序代码如下:

f703738da9773912905d6395a79b351c377ae256.jpeg?token=b48b8aac643f84f1a5fa27420de97f99

上面代码中使用formatter参数实现元素输出格式的完全自定义形式,本例字典参数中’all’表明对于所有数据类型的元素,使用lamda表达式判断其输出值,分别输出“+1”和“-1”的值。

总结

本文仅演示了函数set_printoptions中几个常用参数的设置方法,如果还有其它的设置需求(如省略打印时设置两头打印的元素个数等),大家可参考其帮助文档,进行对应的设置即可。

本文由编码那些事原创,请关注+转发+收藏+点赞,带你一起长知识!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值