Python常用数字处理基本操作汇总


Posted in Python onSeptember 10, 2020

一些基本的操作,在工作者遇到相关问题要有相关印象。

一、 你想对浮点数执行指定精度的舍入运算

对于简单的舍入运算,使用内置的 round(value, ndigits) 函数即可。比如:

>>> round(1.23, 1)
1.2
>>> round(1.27, 1)
1.3
>>> round(-1.27, 1)
-1.3
>>> round(1.25361,3)
1.254
>>>

当一个值刚好在两个边界的中间的时候, round 函数返回离它最近的偶数。 也就是说,对1.5或者2.5的舍入运算都会得到2。

传给 round() 函数的 ndigits 参数可以是负数,这种情况下, 舍入运算会作用在十位、百位、千位等上面。比如:

>>> a = 1627731
>>> round(a, -1)
1627730
>>> round(a, -2)
1627700
>>> round(a, -3)
1628000
>>>

不要将舍入和格式化输出搞混淆了。 如果你的目的只是简单的输出一定宽度的数,你不需要使用 round() 函数。 而仅仅只需要在格式化的时候指定精度即可。比如:

>>> x = 1.23456
>>> format(x, '0.2f')
'1.23'
>>> format(x, '0.3f')
'1.235'
>>> 'value is {:0.3f}'.format(x)
'value is 1.235'
>>>

二、进制转化

为了将整数转换为二进制、八进制或十六进制的文本串, 可以分别使用 bin() , oct() 或 hex()函数:

>>> x = 1234
>>> bin(x)
'0b10011010010'
>>> oct(x)
'0o2322'
>>> hex(x)
'0x4d2'
>>>

为了以不同的进制转换整数字符串,简单的使用带有进制的 int() 函数即可:

>>> int('4d2', 16)
1234
>>> int('10011010010', 2)
1234
>>>

三、分数相关运算

>>> from fractions import Fraction
>>> a = Fraction(5, 4)
>>> b = Fraction(7, 16)
>>> print(a + b)
27/16
>>> print(a * b)
35/64

>>> # Getting numerator/denominator
>>> c = a * b
>>> c.numerator
35
>>> c.denominator
64

>>> # Converting to a float
>>> float(c)
0.546875

>>> # Limiting the denominator of a value
>>> print(c.limit_denominator(8))
4/7

>>> # Converting a float to a fraction
>>> x = 3.75
>>> y = Fraction(*x.as_integer_ratio())
>>> y
Fraction(15, 4)
>>>

四、random模块

random 模块有大量的函数用来产生随机数和随机选择元素。 比如,要想从一个序列中随机的抽取一个元素,可以使用 random.choice() :

>>> import random
>>> values = [1, 2, 3, 4, 5, 6]
>>> random.choice(values)
2
>>> random.choice(values)
3
>>> random.choice(values)
1
>>> random.choice(values)
4
>>> random.choice(values)
6
>>>

为了提取出N个不同元素的样本用来做进一步的操作,可以使用 random.sample() :

>>> random.sample(values, 2)
[6, 2]
>>> random.sample(values, 2)
[4, 3]
>>> random.sample(values, 3)
[4, 3, 1]
>>> random.sample(values, 3)
[5, 4, 1]
>>>

如果你仅仅只是想打乱序列中元素的顺序,可以使用 random.shuffle() :

>>> random.shuffle(values)
>>> values
[2, 4, 6, 5, 3, 1]
>>> random.shuffle(values)
>>> values
[3, 5, 2, 1, 6, 4]
>>>

生成随机整数,请使用 random.randint() :

>>> random.randint(0,10)
2
>>> random.randint(0,10)
5
>>> random.randint(0,10)
0
>>> random.randint(0,10)
7
>>> random.randint(0,10)
10
>>> random.randint(0,10)
3
>>>

为了生成0到1范围内均匀分布的浮点数,使用 random.random() :

>>> random.random()
0.9406677561675867
>>> random.random()
0.133129581343897
>>> random.random()
0.4144991136919316
>>>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 可爱的大小写
Sep 06 Python
python求crc32值的方法
Oct 05 Python
Python中分数的相关使用教程
Mar 30 Python
python文件写入实例分析
Apr 08 Python
python压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
浅谈Python数据类型之间的转换
Jun 08 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
python列表list保留顺序去重的实例
Dec 14 Python
python打开使用的方法
Sep 30 Python
python标识符命名规范原理解析
Jan 10 Python
python使用Geany编辑器配置方法
Feb 21 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
Apr 23 Python
Python通用唯一标识符uuid模块使用案例
Sep 10 #Python
Python编写单元测试代码实例
Sep 10 #Python
python super()函数的基本使用
Sep 10 #Python
Python如何实现机器人聊天
Sep 10 #Python
Python 必须了解的5种高级特征
Sep 10 #Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 #Python
利用python 读写csv文件
Sep 10 #Python
You might like
php fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
php异常处理使用示例
2014/02/25 PHP
简单谈谈favicon
2015/06/10 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
简单的js表格操作
2016/09/24 Javascript
React快速入门教程
2017/01/17 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
利用vueJs实现图片轮播实例代码
2017/06/03 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
Python实现读取Properties配置文件的方法
2018/03/29 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
python 列表推导式使用详解
2019/08/29 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
Python爬取某平台短视频的方法
2021/02/08 Python
介绍下WebSphere的安全性
2013/01/31 面试题
公交公司毕业生求职信
2014/02/15 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
查摆剖析材料范文
2014/09/30 职场文书
公司员工体检通知
2015/04/21 职场文书
小学中队长竞选稿
2015/11/20 职场文书
初中体育课教学反思
2016/02/16 职场文书
工程移交协议书
2016/03/24 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
Python的property属性详细讲解
2022/04/11 Python