在深入学习机器学习,开启人工智能算法设计之前,有许多需要事先掌握的知识,最重要的是数学知识和编程能力,而且要把这两者有机结合起来,以备今后实现各类算法做好准备。
python是如今广为传颂的科学计算程序开发语言,有优势或缺点在这里不想追溯,毕竟没有一种万能工具能解决所有问题,我们只把它当成一种工具就好了。我想把自己学习、实践机器学习知识的体会通过这个博客记录下来,分享出去,其中的问题和错误希望看到的朋友给予批评指正。
先把之前整理过的,使用python numpy库完成线性代数常用计算的部分记录一下。
一、环境准备
1. 编码工具
执行下面程序前,需要安装python 和numpy库,推荐使用anaconda 3或更高版本。安装过程请参看anaconda官网文档。
2.编程环境
每个人都有自己偏爱的python编程环境,或繁或简都是可以的。在这里推荐使用anaconda 3集成的jupyter notebook,能够在浏览器上编写和调试代码,简单方便。
二、线性代数中常用计算的实现
线性代数里的主要内容包括:
- 行列式
- 矩阵
- 向量
- 线性方程
- 线性空间
二次型等
由于行列式可以认为是方阵的一种特殊计算表达方式,所以下面从矩阵的创建开始。
1.矩阵的创建
如果仅使用于python+numpy,那么创建矩阵有如下方法:
import numpy as np
#下列矩阵均由numpy ndarray对象存放
'''构造矩阵方法1 得到一个3*3矩阵'''
a = np.array([[1,2,-4],[-2,2,1],[-3,4,-2]],dtype=np.float64)
'''构造矩阵方法2,得到一个3*3矩阵'''
b = b = np.arange(11,20).reshape(3,3)
'''构造矩阵方法3,得到一个3*3的全0矩阵'''
c = np.zeros((3,3))
'''构造矩阵方法4,得到一个3*3的全1矩阵'''
d = np.ones((3,