前言:最近在回顾自己学习的过程,发现很多东西没有做一个具体的梳理,所以最近在回顾的时候也想整理一下发在这里,主要是方便自己回头看,如果能帮助到一些人也是我的荣幸,如果有疑问或者错误也请指出。
参考书籍:《机器学习线性代数基础-python语言描述》 张雨萌编著。
在参考书的基础上,加入了一些自己的想法、整理和一些用法示例的补充,很多内容不一定与原书一致
由于主要是为了自己方便看,所以需要说明的是,此处默认读者已经掌握基础的线性代数相关知识,本文的目的只是使用python进行相关描述,也并非是为了做一个具体的教程,但我相信只要有基本的python和数学基础都能看懂

目录

  • 1. 向量的创建
    • 1.1 行向量
    • 1.2 列向量
  • 2. 向量的运算
    • 2.1 向量加法
    • 2.2 向量的乘法
      • 2.2.1 数量乘法(数乘)
      • 2.2.2 内积(点乘)
      • 2.2.3 外积(叉乘)
      • 2.2.4 直接使用乘号?
      • 2.2.5 那么加号呢?

1. 向量的创建

这里使用numpy库来进行向量的创建以及之后的内容


1.1 行向量

代码如下:

import numpy as npa = np.array([1,2,3,4])
print(a)

运行结果为:

[1 2 3 4]

默认生成的是一个行向量


1.2 列向量

需要注意的是,不同于行向量可以直接写成一个一维的形式,仔细观察上面的结果其实是一个只有一个元素的矩阵,里面有四个数字,列向量要写成n*1的形式,是一个二维的矩阵,所以在创建的时候需要注意多加一个括号写成二维
转置很简单,只需要在向量/矩阵后面加一个 .T 即可
如果没有加上中括号以增加维度,会发现转置之后没有变化:

import numpy as np
a = np.array([1,2,3,4])
print(a)
print(a.T)结果为:
[1 2 3 4]
[1 2 3 4]

这是因为python将其看为一个一维数组,里面是1234,所以转置之后结果不会变化


正确的代码如下:

import numpy as npa = np.array([[1,2,3,4]])
print(a)
print(a.T)

运行结果为:

[[1 2 3 4]]
[[1][2][3][4]]

观察这部分的输出,与行向量是有差别的,这里是一个二维


当然,也可以通过一些方式对以一维形式创建的行向量进行转置,这里介绍 np.newaxis ,它可以增加一个维度
看看如下示例:

import numpy as np
a = np.array([1,2,3,4])
print(a)
print(a.shape)
A = a[np.newaxis,:]
print(A)
print(A.shape)

结果为:

[1 2 3 4]
(4,)
[[1 2 3 4]]
(1, 4)

这里 .shape 的作用是查看它的规模,可以看出,在此处,[1,2,3,4]被视为一维数组,而 np.newaxis 的作用就是在他的位置处插入一个维度,这里是插在前面,所以变为了 (1,4) ,冒号是一个切片,可以自行修改使用不同的切片来尝试以加深对插入维度的理解

从上面的例子可以简单想到,如果需要一个列向量,也就是 (4,1) ,只需要在后面插入一个维度即可,如下所示:

import numpy as np
a = np.array([1,2,3,4])
print(a)
print(a.shape)
A = a[:,np.newaxis]
print(A)
print(A.shape)

结果自然为:

[1 2 3 4]
(4,)
[[1][2][3][4]]
(4, 1)

2. 向量的运算


2.1 向量加法

只需要将两个向量简单的相加即可,注意维度的一致

import numpy as npa = np.array([[1,2,3]])
b = np.array([[4,5,6]])print(a + b)
print(a.T + b.T)

运行结果如下:

[[5 7 9]]
[[5][7</

【机器学习中可能需要用到的线性代数基础,使用python描述】(一、向量的创建和基本运算)相关推荐

  1. 【机器学习算法专题(蓄力计划)】十、机器学习中必备的高等数学和线性代数基础

    文章目录 高等数学基础 函数 方向导数(引出梯度) 梯度 微积分 微积分基本理论 泰勒公式 线性代数基础 矩阵和特征 向量内积 SVD矩阵分解 高等数学基础 函数 WHAT:后面基本都是用函数,这里先 ...

  2. 机器学习中的算法(2)-支持向量机(SVM)基础

    版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...

  3. 吴恩达机器学习【第三天】线性代数基础知识

    前言:昨天又偷懒了,学到一半就跑了 之前觉得机器学习对线性代数的要求很高,但是在这个课程中,老师给出的线性代数基础知识,却很少,更多是强调应用. 文章目录 矩阵是什么 矩阵的加法和减法[与常数相乘] ...

  4. 机器学习中的算法:支持向量机(SVM)基础

    前言: 最近一段时间看了看关于SVM(Support Vector Machine)的文章,觉得SVM是一个非常有趣,而且自成一派的方向,所以今天准备写一篇关于关于SVM的文章. 关于SVM的论文.书 ...

  5. 两个列向量相乘怎么计算_机器学习 线性代数基础 | 1.4 矩阵乘向量的新视角:变换基底...

    我们即将步入这一章的尾声,在本章前面的三个小节中,我们学习了矩阵和向量的表示方法以及加法.乘法等基本运算的规则,并能够熟练利用Python语言工具正确的对其进行描述和表示.但是显然我们不能仅仅满足于此 ...

  6. c字符串中包含双引号_零基础学Python:一文看懂数字和字符串

    来源:大数据DT 本文约2000字,建议阅读6分钟 数据类型是构成编程语言语法的基础.[ 导读 ]数据类型是构成编程语言语法的基础.不同的编程语言有不同的数据类型,但都具有常用的几种数据类型.Pyth ...

  7. 机器学习中常见的六种分类算法(附Python源码+数据集)

    今天和大家学习一下机器学习中常见的六种分类算法,如K近邻.决策树.朴素贝叶斯.逻辑回归.支持向量机.随机森林 除了介绍这六种不同分类算法外,还附上对应的Python代码案例,并分析各自的优缺点. 01 ...

  8. dpresult在python中什么意思_动态规划(DP)的整理-Python描述

    今天整理了一下关于动态规划的内容,道理都知道,但是python来描述的方面参考较少,整理如下,希望对你有所帮助,实验代码均经过测试. 请先好好阅读如下内容--什么是动态规划? 摘录于<算法图解& ...

  9. 零基础学python图文版-如何快速创建投票页面 | 腾讯问卷怎么用_什么值得买

    Kim工房:如何快速创建投票页面?这颗"腾讯问卷"请吃下! 2018-01-11 19:50:10 28点赞 275收藏 7评论 序:微信群没有投票功能,QQ群投票又太简陋,想搞个 ...

  10. 机器学习中的数学:线性代数

    专栏亮点 围绕主要脉络,贯穿整个学科:紧紧围绕空间变换这个线性代数的主要脉络,深刻理解如何用空间表示数据.用空间处理数据.用空间优化数据,用一条线索贯穿整个学科的主干内容. 聚焦四大纬度,筑牢知识体系 ...

最新文章

  1. Spring Boot 最流行的 16 条实践解读!
  2. 《Total Commander:万能文件管理器》——第2.3节.下载与安装
  3. android开发 apk文件,android开发中,将数据库文件与APK一起发布?
  4. git 配置图形比较工具
  5. 计算机文化基础B卷期末,《计算机文化基础》上机试卷B
  6. 95-40-014-生产者-KafkaProducer
  7. 美创意 -vue 组件的网站
  8. 单片机c语言中void key(void),单片机C语言编程
  9. 图像处理——采样与量化
  10. 2000坐标系xy坐标几位_2000国家大地坐标系简介
  11. python查找excel中重复数据_python中查找excel某一列的重复数据 剔除之后打印
  12. python查询12306余票_python自动查询12306余票并发送邮箱提醒脚本
  13. 华为依然执5G手机市场牛耳,不得不感叹它的强大
  14. 金融断直连,正式开始落地!
  15. 服务器集群有哪些类型
  16. 20,000 字帮你搞定策略模式!
  17. maven错误Unknown lifecycle phase “build“. You must specify a valid lifecycle phase or a goal in the fo
  18. 利用Excel将百度地图搜索结果导出
  19. linux对4T硬盘进行分区
  20. python正确读音_8个正确使用Python的迹象

热门文章

  1. Lombok 的fields问题
  2. PAT A1139 First Contact DFS写法和简单写法
  3. 06_微信的素材和图片消息处理
  4. 概率论与数理统计学习笔记——第二讲——事件的相互关系及运算
  5. 浏览器端存储技术的区别
  6. Dom4j解析xml完全解析
  7. Item 27: Familiarize yourself with alternatives to overloading on universal references.
  8. 学习笔记二--《一步一步写嵌入式操作系统--Arm编程方法与实践》
  9. Dubbo Triple
  10. 整个大活,采集8个代理IP站点,为Python代理池铺路,爬虫120例之第15例