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中处理字符串之islower()方法的使用简介
May 19 Python
python基于隐马尔可夫模型实现中文拼音输入
Apr 01 Python
python 排序算法总结及实例详解
Sep 28 Python
离线安装Pyecharts的步骤以及依赖包流程
Apr 23 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
May 08 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
django url到views参数传递的实例
Jul 19 Python
Django配置MySQL数据库的完整步骤
Sep 07 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 Python
django 多数据库及分库实现方式
Apr 01 Python
Python使用OpenPyXL处理Excel表格
Jul 02 Python
python基础学习之生成器与文件系统知识总结
May 25 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
ftp类(example.php)
2006/10/09 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
2010/12/27 Javascript
jquery一句话全选/取消全选
2011/03/01 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
JavaScript学习小结之使用canvas画“哆啦A梦”时钟
2016/07/24 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
2018/07/24 Javascript
使用layer弹窗和layui表单实现新增功能
2018/08/09 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
快速了解Python中的装饰器
2018/01/11 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
2021/01/29 Python
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
2015年街道办事处工作总结
2015/05/22 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
信仰纪录片观后感
2015/06/08 职场文书
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript