python
矩阵运算
第一次看见
Python
的运行感觉就让我想起了
matlab
,于是就上网嗖嗖他在矩阵方
面的运算如何,如果不想安装
Matlab
那么大的软件,而你又只是想计算些矩阵,
python
绝对够用!尤其在
Linux
下太方便了
Python
使用
NumPy
包完成了对
N-
维数组的快速便捷操作。使用这个包,需要导入
numpy
。
SciPy
包以
NumPy
包为基础,大大的扩展了
numpy
的能力。为了使用的方
便,
scipy
包在最外层名字空间中包括了所有的
numpy
内容,因此只要导入了
scipy
,不必在单独导入
numpy
了!但是为了明确哪些是
numpy
中实现的,哪些是
scipy
中实现的,本文还是进行了区分。以下默认已经:
import numpy as np
以
及
impor scipy as sp
下面简要介绍
Python
和
MATLAB
处理数学问题的几个不同点。
1.MATLAB
的基本是
矩阵,而
numpy
的基本类型是多为数组,把
matrix
看做是
array
的子类。
2.MATLAB
的索引从
1
开始,而
numpy
从
0
开始。
1.
建立矩阵
a1=np.array([1,2,3],dtype=int)
#
建立一个一维数组,数据类型是
int
。也
可以不指定数据类型,使用默认。几乎所有的数组建立函数都可以指定数据类型,
即
dtype
的取值。
a2=np.array([[1,2,3],[2,3,4]])
#
建立一个二维数组。此处和
MATLAB
的二维
数组(矩阵)的建立有很大差别。
同样,
numpy
中也有很多内置的特殊矩阵:
b1=np.zeros((2,3))
#
生成一个
2
行
3
列的全
0
矩阵。注意,参数是一个
tuple
:
(2,3)
,所以有两个括号。完整的形式为:
zeros(shape,dtype=)
。相同的
结构,有
ones()
建立全
1
矩阵。
empty()
建立一个空矩阵,使用内存中的随机值来
填充这个矩阵。
b2=identity(n)
#
建立
n*n
的单位阵,这只能是一个方阵。
b3=eye(N,M=None,k=0)
#
建立一个对角线是
1
其余值为
0
的矩阵,用
k
指定
对角线的位置。
M
默认
None
。
此外,
numpy
中还提供了几个
like
函数,即按照某一个已知的数组的规模(几行
几列)建立同样规模的特殊数组。这样的函数有
zeros_like()
、
empty_like()
、
ones_like()
,它们的参数均为如此形式:
zeros_like(a,dtype=)
,其中,
a
是一
个已知的数组。
c1=np.arange(2,3,0.1)
#
起点,终点,步长值。含起点值,不含终点值。
c2=np.linspace(1,4,10)
#
起点,终点,区间内点数。起点终点均包括在
内。同理,有
logspace()
函数
d1=np.linalg.companion(a)
#
伴随矩阵