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处理文本文件并生成指定格式的文件
Jul 31 Python
Python实现压缩和解压缩ZIP文件的方法分析
Sep 28 Python
python 解压pkl文件的方法
Oct 25 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
python实现的读取网页并分词功能示例
Oct 29 Python
基于python的列表list和集合set操作
Nov 24 Python
python groupby 函数 as_index详解
Dec 16 Python
python模式 工厂模式原理及实例详解
Feb 11 Python
Keras-多输入多输出实例(多任务)
Jun 22 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
python如何快速生成时间戳
Jul 21 Python
python爬取抖音视频的实例分析
Jan 19 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
PHP四种基本排序算法示例
2015/04/09 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
关于HTML5的data-*自定义属性的总结
2018/05/05 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
Python线程详解
2015/06/24 Python
Python常用的爬虫技巧总结
2016/03/28 Python
Python2.7+pytesser实现简单验证码的识别方法
2017/12/29 Python
python 正确保留多位小数的实例
2018/07/16 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Python绘制全球疫情变化地图的实例代码
2020/04/20 Python
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
门卫班长岗位职责
2013/12/15 职场文书
小小的船教学反思
2014/02/21 职场文书
新文化运动的基本口号
2014/06/21 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
优秀教师事迹材料
2014/12/15 职场文书
三好学生事迹材料
2014/12/24 职场文书
交通事故和解协议书
2015/01/27 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
教师教育教学随笔
2015/08/15 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
导游词之张家界
2019/10/31 职场文书
Python实现拼音转换
2021/06/07 Python
Go语言读取txt文档的操作方法
2022/01/22 Golang