Python数组与矩阵操作

来源:互联网 发布:阿里云香港 速度 编辑:程序博客网 时间:2024/05/17 05:03

Python数组与矩阵操作


1、MATLAB的基于矩阵的操作,而numpy多是基于数组的操作,numpy的索引从0开始。

import numpy as np  impor scipy as sp

(1)建立矩阵

a=np.array([1,2,3],dtype=int)  
#建立一个一维数组,数据类型是int。也可以不指定数据类型,使用默认。

示例

import numpy as npa=np.array([1,2,3],dtype=int)print a1

结果


(2)a2=np.array([[1,2,3],[2,3,4]])  
#建立一个二维数组。

示例

import numpy as npa1=np.array([[1,2,3],[4,6,7]])print a1

结果



(3)内置函数

b=np.zeros((2,3))  
 #生成一个2行3列的全0矩阵。

注意,参数是一个tuple(元组):(2,3),所以有两个括号。完整的形式为:zeros(shape,dtype=)。

示例

import numpy as npb=np.zeros((2,3))print b

结果


(4)b=np.ones((3,4))

#生成一个3行4列的全1矩阵

示例

import numpy as npb=np.ones((3,4))print b

结果


(5)np.empty()

#建立一个空矩阵,使用内存中的随机值来填充这个矩阵。

示例

import numpy as npb=np.empty((3,4))print b

结果


(6)b=np.identity(n)   

#建立n*n的单位阵,这只能是一个方阵。

示例

import numpy as npb=np.identity(4)print b

结果


(7)b=np.eye(N,M=None,k=0)  
 #建立一个对角线是1其余值为0的矩阵,用k指定对角线的位置。M默认None。

示例

import numpy as npb=np.eye(3,None,1)print b

结果



此外,numpy中还提供了几个like函数,即按照某一个已知的数组的规模(几行几列)建立同样规模的特殊数组。这样的函数有zeros_like()、empty_like()、ones_like(),它们的参数均为如此形式:zeros_like(a,dtype=),其中,a是一个已知的数组。


2、arange()函数

c=np.arange(start,end,step)

#start起点,end终点,step步长值,含起点值,不含终点值。

示例

import numpy as npc=np.arange(2,3,0.1)print c

结果



3、linspace( )函数

c=np.linspace(start,end,counts)   #start:起点,end:终点,counts:区间内点数。起点终点均包括在内

示例

import numpy as npc=np.linspace(1,4,10)print c

结果



4、X.T   

#如果X是矩阵,X.T是X的转置矩阵

示例

import numpy as npx=np.array([[1,2,4],[5,6,7]])print xprint '--------'print x.T

结果



5、X.trace()    

#计算X的迹

示例

import numpy as npx=np.array([[1,2,4],[5,6,7],[1,1,3]])print xprint x.trace()

结果



6、np.linalg.det(a)   

#返回的是矩阵a的行列式

示例

import numpy as npx=np.array([[1,2,4],[5,2,4],[1,3,2]])print xst=np.linalg.det(x)print st

结果


7、np.linalg.eig(a)  
 #矩阵a的特征值和特征向量

示例

import numpy as npx=np.array([[-2,1,1],[0,2,0],[-4,1,3]])print xprint '--------'st=np.linalg.eig(x)print st

结果

其特征值:-1.,2.,2.


0 0
原创粉丝点击