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)
#起点,终点,步长值。含起点值,不含终点值。