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实现身份证号码解析
Sep 01 Python
Python3.x对JSON的一些操作示例
Sep 01 Python
python中装饰器级连的使用方法示例
Sep 29 Python
Python爬虫实例扒取2345天气预报
Mar 04 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
Aug 09 Python
利用Python复制文件的9种方法总结
Sep 02 Python
Python二次规划和线性规划使用实例
Dec 09 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
Oct 27 Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 04 Python
学点简单的Django之第一个Django程序的实现
Feb 24 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
香妃
2021/03/03 冲泡冲煮
PHP函数实现分页含文本分页和数字分页
2014/10/23 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
2015/09/05 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
Angular使用Md5加密的解决方法
2017/09/16 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
图文讲解vue的v-if使用方法
2019/02/11 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
python命令行参数sys.argv使用示例
2014/01/28 Python
Python实现简单的可逆加密程序实例
2015/03/05 Python
python的Tqdm模块的使用
2018/01/10 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
Python实现常见的回文字符串算法
2018/11/14 Python
django使用xadmin的全局配置详解
2019/11/15 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
十岁生日父母答谢词
2014/01/18 职场文书
条幅标语大全
2014/06/20 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
详解Oracle块修改跟踪功能
2021/11/07 Oracle
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python