1.向量

向量是指可以加总(以生成新的向量),可以乘以标量(即数字),也可以生成新的向量的对象。

向量是有限维空间的点。

1.1向量例子

如果你有很多人的身高、体重、年龄数据,就可以把数据记为三维向量(height, weight, age)。

如果你教的一个班有四门考试,就可以把学生成绩记为四维向量(exam1, exam2, exam3, exam4)。

1.2向量加法与减法

向量以分量方式(componentwise)做运算。这意味着,如果两个向量v 和w 长度相同,那它们的和就是一个新的向量,其中向量的第一个元素等于v[0] + w[0],第二个元素等于v[1] + w[1],以此类推。(如果两个向量长度不同,则不能相加。)

  • 向量加法函数
def vector_add(v, w):
retrun [v_i + w_i for v_i, w_i in zip(v,w)]
  • 向量减法函数
def vector_add(v, w):
retrun [v_i - w_i for v_i, w_i in zip(v,w)]
  • 多个向量的加法运算
def vector_sum(*vectors):
result = vectors[0]
for vector in vectors[1:]:
result = vector_add(result, vector)
return result #方法2
import functools import reduce
def vector_sum(*vectors):
return reduce(vector_add, vectors)

1.3向量的乘法

  • 标量与向量的乘法
def scalar_multiply(c,v):
return [c * v_i for v_i in v]
  • 系列向量的均值
def vector_mean(*vectors):
n = len(vectors)
return scalar_multiply(1/n, vector_sum(vectors))
  • 点乘
def dot(v,w):
return sum(v_i * w_i for v_i, w_i in zip(v,w))
  • 向量的平方和
def sum_of_squares(v)
return dot(v,v)
  • 向量的长度
import math
def magnitude(v)
return math.sqrt(sum_of_squares(v))
  • 两点间的距离

def squared_distance(v,w):
return sum_of_squares(vector_subtract(v,w)) def distance(v,w):
return math.squrt(squared_distance(v,w))
# return magnitude(vector_subtract(v,w))

2.矩阵

矩阵是一个二维的数据集合。我们将矩阵表示为列表的列表,每个内部列表的大小都一样,表示矩阵的一行。如果A是一个矩阵,那么A[i][j]就表示第i行第j列的元素。按照数学表达的惯例,我们通常用大写字母表示矩阵。

2.1矩阵例子

2.2矩阵的形状

def shape(A):
num_rows = len(A)
num_cols = len(A[0] if A else 0)
return num_rows, num_cols

如果一个矩阵有n 行k 列,则可以记为n×k 矩阵。我们可以把这个n×k 矩阵的每一行都当作一个长度为k 的向量,把每一列都当作一个长度为n 的向量:

2.3矩阵的创建函数

def make_matrix(num_rows, num_cols, entry_fn):
return [[entry_fn(i, j) for j in range(num_cols)] for i in range(num_rows)] def is_diagonal(i, j):
return 1 if i == j else 0 make_matrix(5, 5, is_diagonal)
[[1, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 1, 0],
[0, 0, 0, 0, 1]]

参考《数据科学入门》

线性代数与Python的更多相关文章

  1. [转]numpy线性代数基础 - Python和MATLAB矩阵处理的不同

    转自:http://blog.csdn.net/pipisorry/article/details/45563695 http://blog.csdn.net/pipisorry/article/de ...

  2. 数据科学速查手册(包括机器学习,概率,微积分,线性代数,python,pandas,numpy,数据可视化,SQL,大数据等方向)

    介绍:https://redstonewill.com/2372/ 项目网址:https://github.com/FavioVazquez/ds-cheatsheets

  3. 关于python深度学习网站

      大数据文摘作品,转载要求见文末 编译团队|姚佳灵 裴迅 简介 ▼ 深度学习,是人工智能领域的一个突出的话题,被众人关注已经有相当长的一段时间了.它备受关注是因为在计算机视觉(Computer Vi ...

  4. 2018年Fintech金融科技关键词和入行互金从业必懂知识

    2018年过去大半,诸多关键词进入眼帘: 5G,消费降级,数据裸奔,新零售,AI,物联网,云计算,合规监管,风控,割韭菜,区块链,生物识别,国民空闲时间以及金融科技. 这些词充斥着我们的生活和时间,而 ...

  5. 利用Python学习线性代数 -- 1.1 线性方程组

    利用Python学习线性代数 -- 1.1 线性方程组 本节实现的主要功能函数,在源码文件linear_system中,后续章节将作为基本功能调用. 线性方程 线性方程组由一个或多个线性方程组成,如 ...

  6. Python与线性代数基本概念

    在Python中使用Numpy创建向量: x = np.array([1, 2, 3, 4]) 创建3 x 3矩阵 B = np.array([[1, 2],[3, 4],[5, 6]]) Shape ...

  7. Python之Numpy:线性代数/矩阵运算

    当你知道工具的用处,理论与工具如何结合的时候,通常会加速咱们对两者的学习效率. 零 numpy 那么,Numpy是什么? NumPy(Numerical Python) 是 Python 语言的一个扩 ...

  8. Python 矩阵(线性代数)

    Python 矩阵(线性代数) 这里有一份新手友好的线性代数笔记,是和深度学习花书配套,还被Ian Goodfellow老师翻了牌. 笔记来自巴黎高等师范学院的博士生Hadrien Jean,是针对& ...

  9. PYTHON替代MATLAB在线性代数学习中的应用(使用Python辅助MIT 18.06 Linear Algebra学习)

    前言 MATLAB一向是理工科学生的必备神器,但随着中美贸易冲突的一再升级,禁售与禁用的阴云也持续笼罩在高等学院的头顶.也许我们都应当考虑更多的途径,来辅助我们的学习和研究工作. 虽然PYTHON和众 ...

随机推荐

  1. Python3 isinstance() 函数

    Python3 isinstance() 函数 描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type(). isinstance() 与 type() 区别: typ ...

  2. Caching漫谈--关于Cache的几个理论

    如今缓存是随处可见了,如果你的程序还没有使用到缓存,那可能是你的程序并发量很低,或对实时性要求很低.我们公司的ERP在显示某些报表时,每次打开都需要花上几分钟的时间,假如搜索引擎也是这么慢,我想这家搜 ...

  3. SharePoint 2010:搜索服务当前处于脱机状态

    错误 搜索服务当前处于脱机状态.请访问 SharePoint 管理中心中的"服务器上的服务"页,以验证是否启用了该服务.这也可能是由于正在移动索引器所致.   正在配置网站集搜索关 ...

  4. springmvc和mybatis整合关键配置

    springmvc+mybaits的系统架构: 第一步:整合dao层 mybatis和spring整合,通过spring管理mapper接口. 使用mapper的扫描器自动扫描mapper接口在spr ...

  5. mybatis学习笔记--常见的错误

    原文来自:<mybatis学习笔记--常见的错误> 昨天刚学了下mybatis,用的是3.2.2的版本,在使用过程中遇到了些小问题,现总结如下,会不断更新. 1.没有在configurat ...

  6. jsonp原理和实例详解

    1.一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面.动态网页.web服务.WCF,只要是跨域请求,一律不准:2.不过我们又发现,Web页面上调用js文件时则不受 ...

  7. JavaStrip和python的变量存储位置

    <script> var a =1 function a() { console.log("sdfdsf") } a() </script> Uncaugh ...

  8. python接口自动化测试八:更新Cookies、session保持会话

    s = requests.session() # 此方法只适用于网站是cookies这种,网站是token的没用 # 这样做的好处就是可以保存cookies并保持会话,不用每次都去获取.传参 Toke ...

  9. Android Monkey压力测试环境搭建及使用

    Android Monkey压力测试学习笔记 步骤:下载SDK -> 解压进入SDK Manager下载系统 -> 配置环境变量 -> 创建虚拟设备或连接真机 -> 进入命令模 ...

  10. WCF简介-01

    WCF Windows Communication Foundation 1.1 新建一个"空白解决方案" 1.2 在解决方案中添加类库IBLL 1.2.1 添加接口IUserIn ...