线性代数和numpy——黑板客老师课程学习
一、代数是什么
代数->数的抽象表示->向量空间(线性空间)
线代->线性代数
关系:
向量空间之间和内部转换是通过线性变换。
实数——一维空间的点
复数——二维空间的点
如果两个向量的组合可以生成平面,则要求两个向量要线性无关。
推广一下,N维空间里点可以用N个线性无关的向量来表示。这N个向量就是这个平面的基。
向量的封闭——对加法和数乘封闭。
向量V中任意两个向量a,b加法a+b,仍然在V中,实数乘法x*b,仍然也在V中。
线性相关——其中的一个向量可以用其他的向量表示出来。
矩阵操作在python里编程依赖一个最常用的库——numpy
1、矩阵的创建
a=np.arange(,)
a=np.array([,,,,])
print a, a.dtype, a.shape, a.size, a.ndim
np.arange类似range函数
np.array用来生成矩阵
dtype是数据类型,有int64, complex, uint16等
shape是个元组属性,表示每一维的宽度
size是所有元素个数
ndim是维数
b=np.array([,,],dtype='float16') # int64, complex, uint16......
print b, b.dtype
m=np.array([np.arange(),np.arange()])
print m, m.shape, m.size
# 每一个[]代表一维,比如
# [[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]], 代表矩阵的维度是(2,2,3)
# 其中第一个2,代表最外层的两个[],第二个2代表第二层[],第三个3代表最里层的维度。
n=np.array([[1,2,3,4],[5,6,7,8]])
print n, n[0,2], n[1,1] m=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
print m.shape

x=m.ravel()
y=n.flatten()
print x
print y
ravel()和flatten()看起来效果一样,都是把矩阵展平了。它们的区别在于
ravel()返回的是原有数据的一个映射(view),没有分配新的存储
flatten()返回的是新的数据
因此如果我们改变它们的值,就可以看出区别
numpy还有一些函数有这样的区别,关键在于判断函数返回是原数据的映射还是返回新的数据。
……
等等一共三十道题,详情可参阅黑板课老师的notebook。
正交:A矩阵的转置乘以B等于0。
可逆:方阵,行数等于列数
列向量线性无关
最小二乘法——投影解释
二维平面上,一个点向一条直线投影。
扩展到N维里边,就是让一个直线拟合若干个点,让这些点到线的距离和最短。y=ax+b
但有的时候,欠拟合,可以往更高维的空间投影,y=ax^3+bx^2+cx+d,或者更高维的空间。
但维数过高容易过拟合。
行列式
从平行四边形的面积推出来。
特征值和特征向量
AX=λX——向量X经过向量A的线性变换,得到的是向量A的倍数。λ称为A的特征值,X称为A的特征向量。
什么意思呢?X经过A的变换,得到的是X的方向的伸缩。
在matlab里边有例子,eigshow,然后运行,推重两个向量重合时,重合的向量就是特征向量。两个向量成一条直线的时候,也会有特征向量。然后反方向,所以有四组。从图形中看,是一个椭圆和圆的交合。
如何求特征值和特征向量?
如何用特征值和特征向量来求Fibonacci序列
线性代数和numpy——黑板客老师课程学习的更多相关文章
- python爬虫——黑板客老师课程学习
程序: 目标url 内容提取 表现形式 为什么: 大数据——数据膨胀,信息太多了,不知道哪些信息适合你,例如谷歌搜索引擎. 垂直行业搜索——某一个行业的搜索,与搜索引擎最大的区别:搜索引擎是告诉你哪些 ...
- python类——黑板客老师课程学习
1.基本语法 class class_name(base_class): base_class是它继承的父类 class_var def methods(self,args): statements ...
- pyhton函数——黑板客老师课程学习
1.基本语法 语法: def func_name (arguments) 定义 statements return x,y x,y=func_name(para) 调用 作用域: 可以给内置的函 ...
- python画图—黑板客老师课程学习
1.介绍 把每个图都看作一个对象,图中的每一个部分也是对象.——所有的一切都是对象. 工具——ipython notebook 是python里边用的最多的2D&3D的会图库,开源免费库,使用 ...
- python计算机视觉——黑板客老师课程学习
机器学习的一个应用方向,是如何让机器去理解图像.包括对图像里物体的识别,跟踪和测量. 能做什么——无人驾驶汽车.人脸识别.车牌识别手势识别(游戏方向) PIL静态的库 OpenCV 动态的库 impo ...
- python变量——黑板客老师课程学习
1.和C++.Java的区别: 动态类型:不需要声明a的类型. a=34 type(a) <type ‘int’> 一切皆对象: 4 2.数字: 自动转换类型:a=34 A=3.14 ...
- python语句表达式——黑板客老师课程学习
1.赋值 多重赋值: a,b=1,2 a,b=’beijing’,’sh’ a,b=’bj’ a,b=(1,2) a,b=[1,2] …… 2.输入输出 输入: raw_input() 原始输入 ...
- "做中学"之“极客时间”课程学习指导
目录 "做中学"之"极客时间"课程学习指导 所有课程都可以选的课程 Java程序设计 移动平台开发 网络攻防实践 信息安全系统设计基础 信息安全专业导论 极客时 ...
- 王之泰《面向对象程序设计(java)》课程学习总结
第一部分:理论知识学习部分 总复习纲要 1. Java语言特点与开发环境配置(第1章.第2章) 2. Java基本程序结构(第3章) 3. Java面向对象程序结构(第4章.第5章.第6章) 4. 类 ...
随机推荐
- 使用智能指针来管理对象 (基于RAII)
////一个简单的防止内存泄露的例子//void test() { //使用RAII的特性管理资源 //当智能指针unique_ptr被销毁时,它指向的对象也将被销毁 //这里test函数返回后 p将 ...
- 学习indy组件之一idhttp的使用方法
登录 注册 百度首页 新闻 网页 贴吧 知道 音乐 图片 视频 地图 百科 文库 经验 搜索答案我要提问 首页 分类 公社 知道行家 问医生 高质量问答 经验 个人中心手机知道开放平台 关于del ...
- 使用Maven加载项目有Dubbo框架时出现的常见异常情况
异常描述: The matching wildcard is strict, but no declaration can be found for element 'dubbo ...
- 部署Service Manager 2012遇到的2个问题
上周装了个Service Manager 2012学习,以便完善System Center整个解决方案,在部署期间遇到2个问题,花了我不少时间解决.一.安装时提示“执行自定义操作时失败”每当到了安装的 ...
- 修改apache 2.4.6的MPM模式
编辑配置文件/etc/httpd/conf.modules.d/00-mpm.conf #Select the MPM module which should be used by uncomment ...
- 北京易信软科信息技术有限公司-仓库管理系统V1.0
北京易信软科您可信赖的北京软件研发服务商,公司团队有多年应用软件设计制作及开发经验,为各大企业提供软件设计.制作及维护服务,为用户提供可靠高效的应用服务平台 我们通过专业的项目实施流程,为您提供优质的 ...
- Android自学笔记:Git下载源代码
Info:做J2ME几年了,现在基本没有公司用了,是时候向Android领域进军了. 自学中,难免会有疏漏,有问题请及时提出,共同学习共同进步. 2014-10-13:初版 2014-10-14:添加 ...
- java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space 原因:内存溢出,内存一直申请一直占用,无法回收 解决方法:定时重启下服务,
- 【原创】loadrunner12.53 录制脚本时 打不开网页或者打开网页慢?
问题描述: 之前刚装12.5版本时候,用 WebTours测试过,应用程序选择自己本地IE浏览器.exe程序,输入url地址就可以成功录制了 . 但是由于公司网络配置环境改变了(猜测),现 ...
- linux下RDP客户端及服务器
tsclient redsktop remmina -->对ubuntu支持的非常不错 XRdp 集合vnc作为rdp服务器端使用;