基本运算

  • 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的用法

  1. shape作为函数,可以读取矩阵的长度,它的输入参数可以是一个矩阵。例如:
shape(3):一个单独的数字,返回值为空
shape([1]):一维矩阵[1]返回值为(1L,)
shape([[1],[2]]) :二维矩阵[[1],[2]],返回两个值
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
  1. 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

有两种写法或格式

  1. cmp格式
sorted(L,cmp=lambda x,y:cmp(x[1],y[1])
  • 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的用法

  1. shape作为函数,可以读取矩阵的长度,它的输入参数可以是一个矩阵。例如:
shape(3):一个单独的数字,返回值为空
shape([1]):一维矩阵[1]返回值为(1L,)
shape([[1],[2]]) :二维矩阵[[1],[2]],返回两个值
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
  1. 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

有两种写法或格式

  1. cmp格式
sorted(L,cmp=lambda x,y:cmp(x[1],y[1])
  • 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模块的更多相关文章

  1. 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 ...

  2. Python之路-numpy模块

    这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...

  3. 开发技术--Numpy模块

    开发|Numpy模块 Numpy模块是数据分析基础包,所以还是很重要的,耐心去体会Numpy这个工具可以做什么,我将从源码与 地产呢个实现方式说起,祝大家阅读愉快! Numpy模块提供了两个重要对象: ...

  4. numpy模块、matplotlib模块、pandas模块

    目录 1. numpy模块 2. matplotlib模块 3. pandas模块 1. numpy模块 numpy模块的作用 用来做数据分析,对numpy数组(既有行又有列)--矩阵进行科学计算 实 ...

  5. numpy模块&pandas模块

    目录 numpy模块 pandas模块 numpy模块 import pandas as pd import numpy as np df=pd.Series(np.array(['a','b'])) ...

  6. Python中math和cmath模块的使用

    目录 Math模块 Cmath模块 Math模块 pi                数字常量,圆周率 e                 表示一个常量 sqrt(x)         求x的平方根 ...

  7. Python科学计算—numpy模块总结(1)

    作为一个本科学数学专业,目前研究非线性物理领域的研究僧.用什么软件进行纯科学计算好,Fortran永远是第一位的:matlab虽然很强大,可以很容易的处理大量的大矩阵,但是求解我们的模型(有时可能是几 ...

  8. 【Python 数据分析】Numpy模块

    Numpy模块可以高效的处理数据,提供数组支持.很多模块都依赖他,比如:pandas.scipy.matplotlib 安装Numpy 首先到网站:https://www.lfd.uci.edu/~g ...

  9. python numpy模块

    目录 numpy模块 一维数组 二维数组(用的最多的) 获取多维数组的行和列 多维数组的索引 高级功能 多维数组的元素的替换 通过函数方法创建多维数组 矩阵的运算 点乘和转置(了解) 点乘必须 m*n ...

随机推荐

  1. 《JAVA与模式》之适配器模式(转载)

    适配器模式比较简单,偷个懒,直接转载一篇. 个人理解: * 类适配器是通过继承来完成适配 * 对象适配器是通过传递对象来完成适配 * 不管哪种,其实都是通过引用特殊接口的对象来完成特殊接口的适配调用 ...

  2. wamp2.4-- 为WAMP中的mysql设置密码密码

    WAMP安装好后,mysql密码是为空的,那么要如何修改呢?其实很简单,通过几条指令就行了,下面我就一步步来操作. 1.首先,通过WAMP打开mysql控制台.提示输入密码,因为现在是空,所以直接按回 ...

  3. Linux时间子系统(十二) periodic tick

    一.tick device概念介绍 1.数据结构 在内核中,使用struct tick_device来抽象系统中的tick设备,如下: struct tick_device {     struct ...

  4. Appium測试安卓Launcher以滑动窗口获得目标应用

    所谓Launcher,指的是安卓的桌面管理程序,全部的应用图标都放在launcher上面.事实上这是一个非常easy的样例,仅仅是为了验证几点想法而已. 1.实验目的 做这个试验的目的有二 尝试下窗口 ...

  5. 《Linux Device Drivers》第十五章 内存映射和DMA——note

    简单介绍 很多类型的驱动程序编程都须要了解一些虚拟内存子系统怎样工作的知识 当遇到更为复杂.性能要求更为苛刻的子系统时,本章所讨论的内容迟早都要用到 本章的内容分成三个部分 讲述mmap系统调用的实现 ...

  6. Adobe推出HTML5动画设计工具Edge

    HTML5和Flash,是敌对?是共存? 虽然Flash如今依旧牢牢占领着网络动画的大半江山,但这样的状况终将会被改变. 那么,Edge的推出是否意味着Adobe将放弃和屈服于Flash与HTML5之 ...

  7. Python asin() 函数

    描述 asin() 返回x的反正弦弧度值. 语法 以下是 asin() 方法的语法: import math math.asin(x) 注意:asin()是不能直接访问的,需要导入 math 模块,然 ...

  8. SqlMapConfig.xml中的setting属性 Ibatis mybatis

    <settingscacheModelsEnabled="true"lazyLoadingEnabled="false"enhancementEnable ...

  9. [转]HSPICE软件的应用及常见问题解决

    HSPICE常用分析类型 直流分析(DC Analysis)( 参见HSPICE User’s Manual (1)3-4 ) 常用命令: .OP 直流工作点分析 .NODESET 节点设置 .SEN ...

  10. cocos2dx 3.x避免空customCommand

    1,导致性能悲剧的写法: class A:public CCNode{ public: A(){ m_sprite=NULL; m_isDrawDebug=false; } virtual~A(){} ...