前面几节看得真心累。如今先来点简单easy理解的内容。

一 math包

math包主要处理数学相关的运算。

常数

math.e   # 自然常数e

math.pi  # 圆周率pi

运算函数

math.ceil(x)       # 对x向上取整。比方x=1.2,返回2

math.floor(x)      # 对x向下取整。比方x=1.2,返回1

math.pow(x,y)      # 指数运算。得到x的y次方

math.log(x)        # 对数。默认基底为e。能够使用base參数。来改变对数的基地。比方math.log(100,base=10)

math.sqrt(x)       # 平方根

三角函数

math.sin(x), math.cos(x), math.tan(x), math.asin(x), math.acos(x), math.atan(x)

这些函数都接收一个弧度(radian)为单位的x作为參数。

角度和弧度互换

math.degrees(x), math.radians(x)

双曲函数

math.sinh(x), math.cosh(x), math.tanh(x), math.asinh(x), math.acosh(x), math.atanh(x)

特殊函数

math.erf(x), math.gamma(x)

二 random包

假设你已经了解伪随机数(psudo-random number)的原理。那么你能够使用例如以下:

random.seed(x)

来改变随机数生成器的种子seed。假设你不了解其原理,你不必特别去设定seed。Python会帮你选择seed。

随机挑选和排序

random.choice(seq)   # 从序列的元素中随机挑选一个元素,比方random.choice(range(10))。从0到9中随机挑选一个整数。

random.sample(seq,k) # 从序列中随机挑选k个元素

random.shuffle(seq)  # 将序列的全部元素随机排序

随机生成实数

以下生成的实数符合均匀分布(uniform distribution)。意味着某个范围内的每一个数字出现的概率相等:

random.random()          # 随机生成下一个实数,它在[0,1)范围内。

random.uniform(a,b)      # 随机生成下一个实数。它在[a,b]范围内。





以下生成的实数符合其他的分布 (你能够參考一些统计方面的书籍来了解这些分布):

random.gauss(mu,sigma)    # 随机生成符合高斯分布的随机数。mu,sigma为高斯分布的两个參数。

random.expovariate(lambd) # 随机生成符合指数分布的随机数。lambd为指数分布的參数。

此外还有对数分布,正态分布。Pareto分布。Weibull分布





如果我们有一群人參加舞蹈比赛。为了公平起见。我们要随机排列他们的出场顺序。我们以下利用random包实现:

import random
all_people = ['Tom', 'Vivian', 'Paul', 'Liya', 'Manu', 'Daniel', 'Shawn']
random.shuffle(all_people)
for i,name in enumerate(all_people):
print(i,':'+name)

Python学习笔记17:标准库之数学相关(math包,random包)的更多相关文章

  1. C++ Primer学习笔记2--c++标准库中的 vector、string 和 bitset 类型

    一.string    #include <string>  using std::string    初始化函数:    string s1;        默认构造函数 s1 为空串 ...

  2. C++ Primer 学习笔记_6_标准库类型 -- 命名空间using与string类型

     标准库类型(一) --命名空间using与string类型 引: 标准库类型是语言组成部分中更主要的哪些数据类型(如:数组.指针)的抽象! C++标准库定义的是高级的抽象数据类型: 1.高级:由 ...

  3. python学习23之标准库

    '''''''''标准库1.datetime 日期时间模块存在于Lib/datetime.py文件内'''from datetime import datetime,date,time #from d ...

  4. Python 3 学习笔记之——标准库概述

    1. 操作系统接口 os 模块提供了一些与操作系统相关联的函数. >>> os.getcwd() # 获取当前工作目录 '/home/senius' >>> os. ...

  5. 【Python学习笔记】Pandas库之DataFrame

    1 简介 DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表. 或许说它可能有点像matlab的矩阵,但是matlab的矩阵只能放数值型值(当然matla ...

  6. 吴裕雄--天生自然python学习笔记:beautifulsoup库的使用

    Beautiful Soup 库简介 Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索.修改分析树等功能.它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简 ...

  7. Python学习笔记之——requests库

    requests库一个优雅而简单的用于Python的HTTP库,可以极大的简化我们发送http请求及获取响应的代码. requests是python的第三方库,所以使用之前需要先安装. 1.安装之后就 ...

  8. python学习笔记(自定义库文件路径)

    博主最近在弄接口自动化.主要是基于python自带的unittest框架.包括 Pubilc模块定义所有接口. Main模块根据业务需求重新封装接口便于测试. config文件导入测试业务的固定参数. ...

  9. Python 学习笔记之—— PIL 库

    PIL,全称 Python Imaging Library,是 Python 平台一个功能非常强大而且简单易用的图像处理库.但是,由于 PIL 仅支持到Python 2.7,加上年久失修,于是一群志愿 ...

随机推荐

  1. 循环实现数组 map 方法

    //循环实现数组 map 方法 const selfMap = function (fn, context) { let arr = Array.prototype.slice.call(this) ...

  2. Maven常用仓库地址以及手动添加jar包到仓库

    http://www.blogjava.net/fancydeepin 共有的仓库 http://repository.sonatype.org/content/groups/public/http: ...

  3. ubuntu 安装virt-manager

    sudo apt-get install qemu-kvm libvirt-bin virt-manager bridge-utils

  4. my @unpacking_list = values %map_function; print "\n".@unpacking_list; 输出是3 把 @unpacking_list 当做一个数 输出了

      my %map_function = (     88     "OK_func" => "open_statement",     89     & ...

  5. BZOJ4318: OSU! (概率DP)

    题意:一个串 给出每个字符为1的可能性 否则为0 一段连续的1能获得长度的立方的收益 问总收益的期望 题解:设x_i为到第i位时连续的1的期望长度 由i-1递推来的贡献 如果这一位是0没有贡献 如果是 ...

  6. 允许IIS下载无后缀文件及“请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。”的解决方法

    1)增加MIME类型 ,如下 application/octet-stream 2)注意是"." , ".*"则适用于任何有文件后缀时使用,无后缀请不要加*

  7. iOS sandbox

    iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像android,没有SD卡概念,不能直接访问图像.视频等内容.iOS应用产生的内容,如图像.文件.缓存内容等都必须存储在自己的沙盒内.默认 ...

  8. pip 打包项目配置库

    打包项目中配置库(filename为文件名,可修改) pip freeze > filename.txt 安装配置文件中所有的库包 pip install -r filename.txt 如提示 ...

  9. Vue如何使用vue-area-linkage实现地址三级联动效果

    很多时候我们需要使用地址三级联动,即省市区三级联动.网上有很多插件,在此介绍Vue的一款地区联动插件:vue-area-linkage,下面介绍如何使用这个插件实现地址联动效果:         1. ...

  10. 添物不花钱学JavaEE(基础篇)-JSP

    JSP(JavaServer Pages)是做Java Web开发必须掌握的语言. JSP: JavaServer Pages is a technology for developing web p ...