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模块学习 filecmp 文件比较
Aug 27 Python
跟老齐学Python之复习if语句
Oct 02 Python
Python xlrd读取excel日期类型的2种方法
Apr 28 Python
Python 性能优化技巧总结
Nov 01 Python
python数据结构之链表的实例讲解
Jul 25 Python
解决python中无法自动补全代码的问题
Dec 04 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 Python
python实现微信每日一句自动发送给喜欢的人
Apr 29 Python
python处理“
Jun 10 Python
解决django的template中如果无法引用MEDIA_URL问题
Apr 07 Python
Python字符串函数strip()原理及用法详解
Jul 23 Python
Python探索生命起源 matplotlib细胞自动机动画演示
Apr 21 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函数(ignore_user_abort)
2012/08/01 PHP
php图片上传类 附调用方法
2016/05/15 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
js获取变量
2006/08/24 Javascript
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
javascript 精粹笔记
2010/05/09 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
javascript数组输出的两种方式
2015/01/13 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
python学习数据结构实例代码
2015/05/11 Python
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
如何在sublime编辑器中安装python
2020/05/20 Python
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
工商管理专业应届生求职信
2013/11/04 职场文书
高三地理教学反思
2014/01/11 职场文书
横店影视城导游词
2015/02/06 职场文书
如何用JavaScipt测网速
2021/05/09 Javascript