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的Django框架中的中间件
Jul 24 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
Jul 11 Python
Python中使用支持向量机SVM实践
Dec 27 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
python2和python3在处理字符串上的区别详解
May 29 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
Python3 批量扫描端口的例子
Jul 25 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
python函数不定长参数使用方法解析
Dec 14 Python
Softmax函数原理及Python实现过程解析
May 22 Python
pycharm实现猜数游戏
Dec 07 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 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警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
jquery+javascript编写国籍控件
2015/02/12 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
在Python下尝试多线程编程
2015/04/28 Python
python求解水仙花数的方法
2015/05/11 Python
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
通过实例解析python and和or使用方法
2020/11/14 Python
英国高级百货公司:Harvey Nichols
2017/01/29 全球购物
公司同意接收函
2014/01/13 职场文书
大学生自我鉴定评语
2014/01/27 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
团拜会主持词
2015/07/04 职场文书
2015年公司中秋节致辞
2015/07/31 职场文书
Python类方法总结讲解
2021/07/26 Python
Python anaconda安装库命令详解
2021/10/16 Python
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技