Python:基本运算、基本函数(包括复数)、Math模块、NumPy模块
基本运算
x**2 : x^2
若x是mat矩阵,那就表示x内每个元素求平方- inf:表示正无穷
- 逻辑运算符:and,or,not
字典的get方法
a.get(k,d)
- 1
- 1
get相当于一条if…else…语句。若k在字典a中,则返回a[k];若k不在a中,则返回参数d。
l = {5:2,3:4}
l.get(3,0) 返回值是4;
l.get(1,0) 返回值是0;
- 1
- 2
- 3
- 1
- 2
- 3
type函数:返回数据类型
type(x):返回x的类型
type(x)._name_:返回该类型的字符串表示
- 1
- 2
- 1
- 2
len函数:获得list或str的长度
reload函数:将之前导入过的模块重新加载进来
对复数的处理
complex(a,b) #建立a+bj的复数
complex('2+1j') #将字符串形式的复数转成复数
real(x) #取复数x的实部
imag(x) #取复数x的虚部
abs(x) #求x的模
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
next函数
本函数是返回迭代器的下一个元素的值。
在Python 3中,只能使用next()函数(试图调用.next()方法会触发AttributeError)。
my_generator = (letter for letter in 'abcdefg')
next(my_generator)
>>>'a'
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
math模块
Python内置math模块,提供大部分常用数学运算函数。
使用 math 模块
math 模块是标准库中的,所以不用安装,可以直接使用。使用方法是:
>>> import math
- 1
- 1
常用函数
ceil(x) 取顶
floor(x) 取底
fabs(x) 取绝对值
factorial (x) 阶乘
hypot(x,y) 计算sqrt(x*x+y*y)
pow(x,y) x的y次方
sqrt(x) 开平方
log(x)
log10(x)
trunc(x) 截断取整数部分
isnan (x) 判断是否NaN(not a number)
degrees (x) 弧度转角度
radians(x) 角度转弧度
sin(x)
cos(x)
tan(x)
asin(x)
acos(x)
atan(x)
#例子:
a=math.atan(x) #计算x的反正切值
seta=math.degrees(a) #将弧度制表示的a转换成角度制表示的seta
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
Numpy模块
模块的导入
from numpy import array/mat/shape/*
mm=array([1,2,3]) //
ss=mat([1,2,3])
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
Numpy中,mat必须是2维的,但是array可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。
在numpy中matrix的主要优势是:相对简单的乘法运算符号。例如,a和b是两个matrices,那么a*b,就是矩阵积。
若a=mat([1,2,3])
是矩阵,则 a.A 则转换成了数组,反之,a.M则转换成了矩阵
数组array
数组array的参数是列表,有
a=array([1,2,3])
b=array([[1,2,3],[4,5,6])
- 1
- 2
- 1
- 2
它有以下一些属性:
a.ndim #秩,是数组轴的个数
a.shape #数组的维度
a.size #元素的总个数
a.dtype #一个用来描述数组中元素类型的对象
a.dtype.name #返回字符串形式的类型名
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
常用的Numpy运算
取矩阵中的某一行 ss[1,:]
或该行的某两列 ss[1,0:2]
将数组转换成矩阵 randMat=mat(random.rand(4,4))
矩阵求逆 randMat.I
单位阵 eye(4)
零矩阵 zeros((x,y))
建立x行y列的零矩阵
最大值和最小值 a.max(),a.min()
,而a.max(0)
表示按列选取每列的最大值
最大/小元素的下标 a.argmax(),a.argmin()
#作为方法
x.sum() #所有元素相加
x.sum(axis=0) #按列相加
x.sum(axis=1) #按行相加
#作为函数
sum(a,axis=0)
ss.mean()
mean(a,axis=0(或1)) #按列或行求均值
var(a)
var(a,axis=0(或1)) #按列或行求方差
std(a)
std(a,axis=0(或1)) #按列或行求标准差
ss.T或ss.transpose() #转置
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
shape的用法
- shape作为函数,可以读取矩阵的长度,它的输入参数可以是一个矩阵。例如:
shape(3):一个单独的数字,返回值为空
shape([1]):一维矩阵[1]返回值为(1L,)
shape([[1],[2]]) :二维矩阵[[1],[2]],返回两个值
- 1
- 2
- 3
- 1
- 2
- 3
- shape还可以作为矩阵的方法被调用,如
e=eye(3)
e.shape
>>(3L,3L)
e.shape[0]//读取第一维度的长度
>>3L
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
tile函数:重复某个数组
a=[0,1,2]
b=tile(a,2)
>>>b=([0,1,2,0,1,2])
b=tile(a,(2,1))
>>>b=([[0,1,2],
[0,1,2]])
b=tile(a,(1,2))
>>>b=([[0,1,2],[0,1,2]])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
range函数:构造等差数列
range(1,5):代表从1到5,不包含5:[1,2,3,4]
range(1,5,2):代表从1到5,间隔为2,不包含5:[1,3]
range(5):代表从0到5,不包含5:[0,1,2,3,4]
- 1
- 2
- 3
- 1
- 2
- 3
sort,sorted,argsort函数:排序
x.sort()
:
只可以应用于list对象,且是原地排序,排序过后list发生改变。
x.argsort()
:
得到矩阵每行的升序排序
sorted函数
排序并生成新的容器
一. 如果是普通的列表,可以直接使用sorted,如
a=[1,4,2,3,7]
b=sorted(a)
- 1
- 2
- 1
- 2
二. 如果是由元祖构成的元祖列表,就比较复杂,假设有
L=[('b',2),('a',1),('c',3)]
- 1
- 1
有两种写法或格式
- cmp格式
sorted(L,cmp=lambda x,y:cmp(x[1],y[1])
- 1
- 1
- key格式
sorted(L,key=lambda x:x[1])
- 1
- 1
其中还有个reverse可选项,reverse=True 则输出倒序,reverse=False 则输出正序。
三. 如果是字典,那么格式也略复杂
假设有dic={'a':31,'bc':52,'c':3,'33':56}
在python 3中,可以写成
sorted(dic.items(),key=lambda d:d[1],reserve=False)
- 1
- 1
其中,dic.items
返回字典键值对的元祖集合set
还可以写成
sorted(dic.items(),key=operator.itemgetter(1),reserve=False)
- 1
- 1
其中,operator.itemgetter()
函数可以获取对象的某些维的数据
array的形状操作
a.ravel() #展平成一维数组,a.flatten() 与之类似
a.reshape(m,n) #返回一个新数组,但原数组本身不变
a.resize(m,n) #返回一个新数组的同时也改变原数组本身
- 1
- 2
- 3
- 1
- 2
- 3
其他通用函数或方法
a.copy() #对元素进行复制
c=sqrt(a) #计算元素的平方根
c=exp(a)
c=abs(a)
c=add(a,b) #a和b对应元素相加
c=subtract(a,b) #a和b对应元素相减
c=multiply(a,b) #a和b对应元素相乘
c=divide(a,b) #a和b对应元素相除
nonzero(a) #返回a中所有不为零的元素的下标位置
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
对array和matrix而言,(a>3)或(a==3)
返回一个同类型的布尔值
例如:
a=array([1,2,3])
b=(a==2)
>>>b=array([False,True,False])
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
Numpy中的线性代数子库linalg
linalg中包含了许多线性代数的方法
linalg.det(a) #求a的行列式
linalg.inv(a) #求a的逆矩阵
- 1
- 2
- 1
- 2
基本运算
x**2 : x^2
若x是mat矩阵,那就表示x内每个元素求平方- inf:表示正无穷
- 逻辑运算符:and,or,not
基本函数
字典的get方法
a.get(k,d)
- 1
- 1
get相当于一条if…else…语句。若k在字典a中,则返回a[k];若k不在a中,则返回参数d。
l = {5:2,3:4}
l.get(3,0) 返回值是4;
l.get(1,0) 返回值是0;
- 1
- 2
- 3
- 1
- 2
- 3
type函数:返回数据类型
type(x):返回x的类型
type(x)._name_:返回该类型的字符串表示
- 1
- 2
- 1
- 2
len函数:获得list或str的长度
reload函数:将之前导入过的模块重新加载进来
对复数的处理
complex(a,b) #建立a+bj的复数
complex('2+1j') #将字符串形式的复数转成复数
real(x) #取复数x的实部
imag(x) #取复数x的虚部
abs(x) #求x的模
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
next函数
本函数是返回迭代器的下一个元素的值。
在Python 3中,只能使用next()函数(试图调用.next()方法会触发AttributeError)。
my_generator = (letter for letter in 'abcdefg')
next(my_generator)
>>>'a'
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
math模块
Python内置math模块,提供大部分常用数学运算函数。
使用 math 模块
math 模块是标准库中的,所以不用安装,可以直接使用。使用方法是:
>>> import math
- 1
- 1
常用函数
ceil(x) 取顶
floor(x) 取底
fabs(x) 取绝对值
factorial (x) 阶乘
hypot(x,y) 计算sqrt(x*x+y*y)
pow(x,y) x的y次方
sqrt(x) 开平方
log(x)
log10(x)
trunc(x) 截断取整数部分
isnan (x) 判断是否NaN(not a number)
degrees (x) 弧度转角度
radians(x) 角度转弧度
sin(x)
cos(x)
tan(x)
asin(x)
acos(x)
atan(x)
#例子:
a=math.atan(x) #计算x的反正切值
seta=math.degrees(a) #将弧度制表示的a转换成角度制表示的seta
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
Numpy模块
模块的导入
from numpy import array/mat/shape/*
mm=array([1,2,3]) //
ss=mat([1,2,3])
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
Numpy中,mat必须是2维的,但是array可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。
在numpy中matrix的主要优势是:相对简单的乘法运算符号。例如,a和b是两个matrices,那么a*b,就是矩阵积。
若a=mat([1,2,3])
是矩阵,则 a.A 则转换成了数组,反之,a.M则转换成了矩阵
数组array
数组array的参数是列表,有
a=array([1,2,3])
b=array([[1,2,3],[4,5,6])
- 1
- 2
- 1
- 2
它有以下一些属性:
a.ndim #秩,是数组轴的个数
a.shape #数组的维度
a.size #元素的总个数
a.dtype #一个用来描述数组中元素类型的对象
a.dtype.name #返回字符串形式的类型名
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
常用的Numpy运算
取矩阵中的某一行 ss[1,:]
或该行的某两列 ss[1,0:2]
将数组转换成矩阵 randMat=mat(random.rand(4,4))
矩阵求逆 randMat.I
单位阵 eye(4)
零矩阵 zeros((x,y))
建立x行y列的零矩阵
最大值和最小值 a.max(),a.min()
,而a.max(0)
表示按列选取每列的最大值
最大/小元素的下标 a.argmax(),a.argmin()
#作为方法
x.sum() #所有元素相加
x.sum(axis=0) #按列相加
x.sum(axis=1) #按行相加
#作为函数
sum(a,axis=0)
ss.mean()
mean(a,axis=0(或1)) #按列或行求均值
var(a)
var(a,axis=0(或1)) #按列或行求方差
std(a)
std(a,axis=0(或1)) #按列或行求标准差
ss.T或ss.transpose() #转置
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
shape的用法
- shape作为函数,可以读取矩阵的长度,它的输入参数可以是一个矩阵。例如:
shape(3):一个单独的数字,返回值为空
shape([1]):一维矩阵[1]返回值为(1L,)
shape([[1],[2]]) :二维矩阵[[1],[2]],返回两个值
- 1
- 2
- 3
- 1
- 2
- 3
- shape还可以作为矩阵的方法被调用,如
e=eye(3)
e.shape
>>(3L,3L)
e.shape[0]//读取第一维度的长度
>>3L
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
tile函数:重复某个数组
a=[0,1,2]
b=tile(a,2)
>>>b=([0,1,2,0,1,2])
b=tile(a,(2,1))
>>>b=([[0,1,2],
[0,1,2]])
b=tile(a,(1,2))
>>>b=([[0,1,2],[0,1,2]])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
range函数:构造等差数列
range(1,5):代表从1到5,不包含5:[1,2,3,4]
range(1,5,2):代表从1到5,间隔为2,不包含5:[1,3]
range(5):代表从0到5,不包含5:[0,1,2,3,4]
- 1
- 2
- 3
- 1
- 2
- 3
sort,sorted,argsort函数:排序
x.sort()
:
只可以应用于list对象,且是原地排序,排序过后list发生改变。
x.argsort()
:
得到矩阵每行的升序排序
sorted函数
排序并生成新的容器
一. 如果是普通的列表,可以直接使用sorted,如
a=[1,4,2,3,7]
b=sorted(a)
- 1
- 2
- 1
- 2
二. 如果是由元祖构成的元祖列表,就比较复杂,假设有
L=[('b',2),('a',1),('c',3)]
- 1
- 1
有两种写法或格式
- cmp格式
sorted(L,cmp=lambda x,y:cmp(x[1],y[1])
- 1
- 1
- key格式
sorted(L,key=lambda x:x[1])
- 1
- 1
其中还有个reverse可选项,reverse=True 则输出倒序,reverse=False 则输出正序。
三. 如果是字典,那么格式也略复杂
假设有dic={'a':31,'bc':52,'c':3,'33':56}
在python 3中,可以写成
sorted(dic.items(),key=lambda d:d[1],reserve=False)
- 1
- 1
其中,dic.items
返回字典键值对的元祖集合set
还可以写成
sorted(dic.items(),key=operator.itemgetter(1),reserve=False)
- 1
- 1
其中,operator.itemgetter()
函数可以获取对象的某些维的数据
array的形状操作
a.ravel() #展平成一维数组,a.flatten() 与之类似
a.reshape(m,n) #返回一个新数组,但原数组本身不变
a.resize(m,n) #返回一个新数组的同时也改变原数组本身
- 1
- 2
- 3
- 1
- 2
- 3
其他通用函数或方法
a.copy() #对元素进行复制
c=sqrt(a) #计算元素的平方根
c=exp(a)
c=abs(a)
c=add(a,b) #a和b对应元素相加
c=subtract(a,b) #a和b对应元素相减
c=multiply(a,b) #a和b对应元素相乘
c=divide(a,b) #a和b对应元素相除
nonzero(a) #返回a中所有不为零的元素的下标位置
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
对array和matrix而言,(a>3)或(a==3)
返回一个同类型的布尔值
例如:
a=array([1,2,3])
b=(a==2)
>>>b=array([False,True,False])
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
Numpy中的线性代数子库linalg
linalg中包含了许多线性代数的方法
linalg.det(a) #求a的行列式
linalg.inv(a) #求a的逆矩阵
Python:基本运算、基本函数(包括复数)、Math模块、NumPy模块的更多相关文章
- Python 绘图与可视化 matplotlib 散点图、numpy模块的random()
效果: 代码: def scatter_curve(): # plt.subplot(1,1,1) n=1024 X=np.random.normal(0,1,n) Y=np.random.norma ...
- Python之路-numpy模块
这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...
- 开发技术--Numpy模块
开发|Numpy模块 Numpy模块是数据分析基础包,所以还是很重要的,耐心去体会Numpy这个工具可以做什么,我将从源码与 地产呢个实现方式说起,祝大家阅读愉快! Numpy模块提供了两个重要对象: ...
- numpy模块、matplotlib模块、pandas模块
目录 1. numpy模块 2. matplotlib模块 3. pandas模块 1. numpy模块 numpy模块的作用 用来做数据分析,对numpy数组(既有行又有列)--矩阵进行科学计算 实 ...
- numpy模块&pandas模块
目录 numpy模块 pandas模块 numpy模块 import pandas as pd import numpy as np df=pd.Series(np.array(['a','b'])) ...
- Python中math和cmath模块的使用
目录 Math模块 Cmath模块 Math模块 pi 数字常量,圆周率 e 表示一个常量 sqrt(x) 求x的平方根 ...
- Python科学计算—numpy模块总结(1)
作为一个本科学数学专业,目前研究非线性物理领域的研究僧.用什么软件进行纯科学计算好,Fortran永远是第一位的:matlab虽然很强大,可以很容易的处理大量的大矩阵,但是求解我们的模型(有时可能是几 ...
- 【Python 数据分析】Numpy模块
Numpy模块可以高效的处理数据,提供数组支持.很多模块都依赖他,比如:pandas.scipy.matplotlib 安装Numpy 首先到网站:https://www.lfd.uci.edu/~g ...
- python numpy模块
目录 numpy模块 一维数组 二维数组(用的最多的) 获取多维数组的行和列 多维数组的索引 高级功能 多维数组的元素的替换 通过函数方法创建多维数组 矩阵的运算 点乘和转置(了解) 点乘必须 m*n ...
随机推荐
- python学习笔记——线程threading (二)重写run()方法和守护进程daemon()
1 run()方法 1.1 单个线程 在threading.Thread()类中有run()方法. from time import ctime,sleep import threading # 定义 ...
- python学习笔记——multiprocessing 多进程组件 进程池Pool
1 进程池Pool基本概述 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量时间,如果操作的对象数目不大时,还可以直接适用Process类动态生成 ...
- 转CentOS — MySQL备份 Shell 脚本
http://www.cnblogs.com/bruceleeliya/archive/2012/05/04/2482733.html 使用 mysqldump 备份数据库,通过 FTP 上传到备份服 ...
- webdriver API study
This chapter cover all the interfaces of Selenium WebDriver. Recommended Import Style The API defini ...
- repcached配置与简单測试
安装libevent-devel watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFueXVlcWk=/font/5a6L5L2T/fontsize/40 ...
- python-循环与判断练习题
一.设计这样一个函数,在指定的文件夹上创建10个文本,以数字给它们命名. def text_creation(): path ='D:/study/python3/w/' for name in ra ...
- python pandas 计算相关系数
pandas 中df 对象自带相关性计算方法corr() , 可以用来计算DataFrame对象中所有列之间的相关系数(包括pearson相关系数.Kendall Tau相关系数和spearman秩相 ...
- MySQL日期与时间戳互转函数
-- 时间戳转日期 ); #日期转时间戳 Select UNIX_TIMESTAMP('2018-07-16 12:23:00');
- Clojure 的 Enlive 库尝试
Enlive 是一个 Clojure 下的 html 模板引擎.其特别之处在于,它既没有发明任何 html 内嵌的模板 DSL 语法:也不会混杂代码和表现. 一切的一切,都是按下列模型定义的次序执行的 ...
- C++ 11 nullptr关键字
熟悉C++的童鞋都知道,为了避免“野指针”(即指针在首次使用之前没有进行初始化)的出现,我们声明一个指针后最好马上对其进行初始化操作.如果暂时不明确该指针指向哪个变量,则需要赋予NULL值.除了NUL ...