python之矩阵的运算及使用方法


  • 概述

上篇文章讲解了python使用sympy求导,定积分和不定积分求解的一些基本方法,这次我们就来学习一下矩阵在python中的使用和运算吧ヽ( ̄▽ ̄)ノ

本文使用的是大名鼎鼎的Numpy,此库在线性代数,傅里叶变换和随机数等方面有较为突出的表现,而且也是使用率非常高的库!

1.安装和导入

pip3 install numpy

如果你有多个python版本的话,可以采用官方提供的方法。

python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
Ubuntu and Debian
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
Mac

对于Macports的 Python 3.5,在终端中执行以下命令:

(其他版本类似)

sudo port install py35-numpy py35-scipy py35-matplotlib py35-ipython +notebook py35-pandas py35-sympy py35-nose

当然,还是建议使用anaconda,里面有大量的科学包,方便使用!

2.矩阵的创建

我会根据我的理解和官方教程来进行使用,英语好的可以直接去官网看,防止我可能出现的理解误差。

请认真看注释!

array()函数

array是用来创建数组的,但同样可以创建出矩阵,不过需要转换

# 多个维度  
import numpy as np 
h = np.array([[1,  2],  [3,  4],[5,6]])  #逗号隔开,数字后的空格可以省去
print (h)

补充知识:

构建随机数组
# 构建一个4*4的随机数组
array_1 = random.rand(4,4)

mat()函数

mat()函数将目标数据的类型转化成矩阵(matrix)与MATLAB中matrices等价。

有两种创造矩阵的方法

import numpy as np
a = np.mat('1 3;3 4')
b = np.mat([[1,2],[3,4]])
print(a)
print(b)

两者的区别:

虽然mat和array输出的矩阵看起来是一模一样的,但是我们可以用type()方法来查看他们的不同

print(type(a))
print(type(b))
print(type(h))  //此处的a,b,h与上文的对应

输出:

<class 'numpy.matrix'>
<class 'numpy.matrix'>
<class 'numpy.ndarray'>

那么这个格式的不同意味着什么呢?

首先,mat() 函数与array()函数生成矩阵所需的数据格式有区别,mat()函数中数据可以为字符串以分号(;)分割或者为列表形式以逗号(,)分割,而array()函数中数据只能为后者形式。

因为类型不同,则要用mat函数转换为矩阵后才能进行一些线性代数的操作。(单词释义:matrix:矩阵,array:序列,排列)

转换:
matrix_1 = np.mat(c)

3.

4.矩阵的运算

NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能,可以看看下面的说明:

函数 描述
dot 两个数组的点积,即元素对应相乘。
vdot 两个向量的点积
inner 两个数组的内积
matmul 两个数组的矩阵积
determinant 数组的行列式
solve 求解线性矩阵方程
inv 计算矩阵的乘法逆矩阵

5.

参考链接:

https://www.cnblogs.com/wj-1314/p/10244807.html

https://www.runoob.com/numpy/numpy-mathematical-functions.html

https://www.cnblogs.com/abella/p/10207945.html

https://numpy.org/devdocs/user/quickstart.html


文章作者: 古客
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 古客 !
评论
 上一篇
Matlab之蚂蚁算法的实现 Matlab之蚂蚁算法的实现
概述1.2.3.代码的实现重点还是来看下代码吧。(代码有些长,函数的参数一些解释都放在上面了,方便查阅) %% 数据准备 % 清空环境变量 clear all clc % 程序运行计时开始 t0 = clock; %导入数据 citys
2020-03-09
下一篇 
Matlab矩阵及其相关运算 Matlab矩阵及其相关运算
概述 经过了简单的入门后,就要开始对Matlab的矩阵相关的运算开始学习了,因为矩阵在数据分析和处理方面起到相当重要的作用,必须得好好学习并且能熟练运用。(虽然之前的基础也没有打好,有时间就去回顾吧!) 1.矩阵的创建 matlab
2020-03-08