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 相关文章推荐
可用于监控 mysql Master Slave 状态的python代码
Feb 10 Python
详解Python中的__new__()方法的使用
Apr 09 Python
Python函数式编程指南(四):生成器详解
Jun 24 Python
python制作花瓣网美女图片爬虫
Oct 28 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
pytorch使用指定GPU训练的实例
Aug 19 Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
什么是Python中的匿名函数
Jun 02 Python
浅谈Python中的继承
Jun 19 Python
python进度条显示-tqmd模块的实现示例
Aug 23 Python
python 破解加密zip文件的密码
Apr 22 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
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
为你的 Laravel 验证器加上多验证场景的实现
2020/04/07 PHP
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
vue中添加mp3音频文件的方法
2018/03/02 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
书单|人生苦短,你还不用python!
2017/12/29 Python
python实现图片九宫格分割
2021/03/07 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
新书吧创业计划书
2014/01/31 职场文书
庆七一活动总结
2014/08/27 职场文书
中学生旷课检讨书500字
2014/10/29 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
公司奖励通知
2015/04/21 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
2019自荐信该如何写呢?
2019/07/05 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers