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检测远程端口是否打开的方法
Mar 14 Python
python随机生成指定长度密码的方法
Apr 04 Python
Python3处理文件中每个词的方法
May 22 Python
Python yield 使用方法浅析
May 20 Python
Python实现的科学计算器功能示例
Aug 04 Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
浅谈python3中input输入的使用
Aug 02 Python
python 利用jinja2模板生成html代码实例
Oct 10 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
Mar 16 Python
python实现一个猜拳游戏
Apr 05 Python
python 元组的使用方法
Jun 09 Python
pandas参数设置的实用小技巧
Aug 23 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 时间日期操作实战
2011/08/26 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
jQuery中ajax的使用与缓存问题的解决方法
2013/12/19 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
javascript闭包的理解
2015/04/01 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
详解node.js 事件循环
2020/07/22 Javascript
python实现接口并发测试脚本
2019/06/25 Python
wxPython实现画图板
2020/08/27 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
Tensorflow 多线程设置方式
2020/02/06 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
汽车装潢店创业计划书范文
2014/02/05 职场文书
趣味运动会活动方案
2014/02/12 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
公司车队管理制度
2015/08/04 职场文书
人身损害赔偿协议书
2016/03/22 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
Golang并发工具Singleflight
2022/05/06 Golang