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 socket 超时设置 errno 10054
Jul 01 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 Python
在Python中字典根据多项规则排序的方法
Jan 21 Python
Python 根据数据模板创建shapefile的实现
Nov 26 Python
python 变量初始化空列表的例子
Nov 28 Python
Python列表解析操作实例总结
Feb 26 Python
python中yield的用法详解
Jan 13 Python
Python 无限级分类树状结构生成算法的实现
Jan 21 Python
Python 发送SMTP邮件的简单教程
Jun 24 Python
Python快速实现一键抠图功能的全过程
Jun 29 Python
python实现简单的三子棋游戏
Apr 28 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之规范编程命名小结
2013/05/15 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
layui导航栏实现代码
2017/05/19 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
浅谈Vue.use的使用
2018/08/29 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
银行自荐信范文
2013/10/07 职场文书
学前教育求职自荐信范文
2013/12/25 职场文书
给国外客户的邀请函
2014/01/30 职场文书
进步之星获奖感言
2014/02/22 职场文书
跳蚤市场口号
2014/06/13 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
四年级语文教学反思
2016/03/03 职场文书
财务年终工作总结大全
2019/06/20 职场文书
python析构函数用法及注意事项
2021/06/22 Python
Python初学者必备的文件读写指南
2021/06/23 Python