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实现的ini文件操作类分享
Nov 20 Python
一篇文章入门Python生态系统(Python新手入门指导)
Dec 11 Python
Python中的字符串查找操作方法总结
Jun 27 Python
浅谈Python爬取网页的编码处理
Nov 04 Python
Python守护进程和脚本单例运行详解
Jan 06 Python
Python实现带参数的用户验证功能装饰器示例
Dec 14 Python
Python 运行 shell 获取输出结果的实例
Jan 07 Python
Django 多环境配置详解
May 14 Python
django fernet fields字段加密实践详解
Aug 12 Python
python各层级目录下import方法代码实例
Jan 20 Python
jupyter notebook 多环境conda kernel配置方式
Apr 10 Python
如何用python开发Zeroc Ice应用
Jan 29 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验证码的制作思路和实现方法
2015/11/12 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
XENON基于JSON变种
2010/07/27 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
描述RIP和OSPF区别以及特点
2015/01/17 面试题
商务主管岗位职责
2013/12/08 职场文书
新郎父亲婚宴答谢词
2014/01/11 职场文书
英语教师求职信
2014/06/16 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
保留意见审计报告
2015/06/05 职场文书
国家助学金受助感言
2015/08/01 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
新手初学Java List 接口
2021/07/07 Java/Android