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. sublime3添加python编译系统

    好记性不如烂笔头 为sublime3添加python编译系统,这里使用的anonconda2中的python.exe(即python2.7版本) 步骤: (1)打开sublime,打开“工具-> ...

  2. ORB feature(O for orientation)

    参考链接:http://blog.csdn.net/yang843061497/article/details/38553765 绪论 假如我有2张美女图片,我想确认这2张图片中美女是否是同一个人.这 ...

  3. mysql binglog server的设置方法【原创】

    MySQL备份数据都是MySQL备份+binlog,这样才能保证数据的完整性.下面就是利用mysqlbinlog搭建mysql binlog server,可以把binlog传到远程存储上. 试验环境 ...

  4. mq命令帮助文档

    https://www.ibm.com/support/knowledgecenter/zh/SSFKSJ_7.5.0/com.ibm.mq.ref.adm.doc/q083180_.htm

  5. 关于素数:求不超过n的素数,素数的判定(Miller Rabin 测试)

    关于素数的基本介绍请参考百度百科here和维基百科here的介绍 首先介绍几条关于素数的基本定理: 定理1:如果n不是素数,则n至少有一个( 1, sqrt(n) ]范围内的的因子 定理2:如果n不是 ...

  6. centos6.5环境搭建openvp服务器及windows客户端搭建及配置详解

    1.环境搭建 说明: vpn client 192.168.8.16/24 openvpn server: eth0: 192.168.8.41 eth1: 172.16.1.10 app serve ...

  7. Python-元类 单例

    2.元类 用于创建类的类 叫元类 默认元类都是type 主要控制类的创建__init__ 类的实例化__call__ 3.单例 一个类只有一个实例 什么时候用,大家公用一个打印机,没有必要每个人创建新 ...

  8. Android Menu用法全面讲解

    说明:本文只介绍Android3.0及以上的Menu知识点. 菜单的分类 菜单是Android应用中非常重要且常见的组成部分,主要可以分为三类:选项菜单.上下文菜单/上下文操作模式以及弹出菜单.它们的 ...

  9. AdvStringGrid 标题头 加粗的问题

    当AdvStringGrid1.RowCount = 1的时候,会是下面这样: 当AdvStringGrid1.RowCount = 2 时 才是正确的:

  10. 升级 php composer 版本

    在执行 composer update 时,报错 You made a reference to a non-existent script @php artisan package:discover ...