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