您的位置:首页 > 编程语言 > Python开发

Python数组与矩阵操作

2016-12-27 22:19 447 查看
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 np
a=np.array([1,2,3],dtype=int)
print a1

结果



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

示例

import numpy as np
a1=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 np
b=np.zeros((2,3))
print b

结果



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

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

示例

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

结果



(5)np.empty()

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

示例

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

结果



(6)b=np.identity(n)   

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

示例

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

结果



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

示例

import numpy as np
b=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 np
c=np.arange(2,3,0.1)
print c

结果



3、linspace( )函数

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


示例

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

结果



4、X.T   

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

示例

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

结果



5、X.trace()    

#计算X的迹

示例

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

结果



6、np.linalg.det(a)   

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

示例

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

结果



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

示例

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

结果

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: