矩阵与线性代数运算

问题

你需要执行矩阵和线性代数运算,比如矩阵乘法、寻找行列式、求解线性方程组等等。

解法

NumPy 库有一个矩阵对象可以用来解决这个问题。
矩阵类似于 3.9 小节中数组对象,但是遵循线性代数的计算规则。下面的一个例子
展示了矩阵的一些基本特性:

>>> import numpy as np
>>> m = np.matrix([[1,-2,3],[0,4,5],[7,8,-9]])
>>> m
matrix([[ 1, -2, 3],[ 0, 4, 5],[ 7, 8, -9]])>>> # Return transpose
>>> m.T
matrix([[ 1, 0, 7],[-2, 4, 8],[ 3, 5, -9]])
>>> # Return inverse
>>> m.I
matrix([[ 0.33043478, -0.02608696, 0.09565217],[-0.15217391, 0.13043478, 0.02173913],[ 0.12173913, 0.09565217, -0.0173913 ]])
>>> # Create a vector and multiply
>>> v = np.matrix([[2],[3],[4]])
>>> v
matrix([[2],[3],[4]])
>>> m * v
matrix([[ 8],[32],[ 2]])
>>>

可以在 numpy.linalg 子包中找到更多的操作函数,比如:

>>> import numpy.linalg
>>> # Determinant
>>> numpy.linalg.det(m)
-229.99999999999983
>>> # Eigenvalues
>>> numpy.linalg.eigvals(m)
array([-13.11474312, 2.75956154, 6.35518158])
>>> # Solve for x in mx = v
>>> x = numpy.linalg.solve(m, v)
>>> x
matrix([[ 0.96521739],[ 0.17391304],[ 0.46086957]])
>>> m * x
matrix([[ 2.],[ 3.],[ 4.]])
>>> v
matrix([[2],[3],[4]])
>>>

讨论

很显然线性代数是个非常大的主题,已经超出了本书能讨论的范围。但是,如果你需要操作数组和向量的话, NumPy 是一个不错的入口点。可以访问 NumPy官网获取更多信息。

《Python Cookbook 3rd》笔记(3.10):矩阵与线性代数运算相关推荐

  1. python3 矩阵运算_3.10 矩阵与线性代数运算

    ## 问题 你需要执行矩阵和线性代数运算,比如矩阵乘法.寻找行列式.求解线性方程组等等. ## 解决方案 NumPy库有一个矩阵对象可以用来解决这个问题.矩阵类似于3.9小节中数组对象,但是遵循线性代 ...

  2. 3.10矩阵与线性代数运算

    问题: ​ 你需要执行矩阵和线性代数运算,比如矩阵乘法.寻找行列式.求解线性方程组等等. 解决方案: ​ Numpy库有一个矩阵对象可以用来解决这个问题. ​ 矩阵类似于3.9小节中数组对象,但是遵循 ...

  3. Machine Learning with Python Cookbook 学习笔记 第9章

    Chapter 9. Dimensionality Reduction Using Feature Extraction 前言 本笔记是针对人工智能典型算法的课程中Machine Learning w ...

  4. 《Python Cookbook 3rd》笔记汇总

    文章目录 一.数据结构 二.字符串和文本 三.数字.日期和时间 四.迭代器与生成器 五.文件与IO 一.数据结构 标题 关键词 1.1:拆分序列后赋值给多个变量 可迭代对象.拆分赋值 1.2:拆分任意 ...

  5. 《Python Cookbook 3rd》笔记(1.4):查找最大或最小的N个元素

    <Python Cookbook 3rd>1.4:查找最大或最小的N个元素 问题 怎样从一个集合中获得最大或者最小的N个元素列表? 解法 heapq 模块有两个函数:nlargest()和 ...

  6. Machine Learning with Python Cookbook 学习笔记 第8章

    Chapter 8. Handling Images 前言 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放 ...

  7. Python Cookbook 3rd Edition Documentation

    Python Cookbook 3rd Edition Documentation 文章目录 第一章:数据结构和算法 1.1 解压序列赋值给多个变量 问题 解决方案 讨论 1.2 解压可迭代对象赋值给 ...

  8. 《Python cookbook》笔记二

    <Python cookbook>笔记二 第二章 字符串和文本 -使用多个界定符分割字符串- 你需要将一个字符串分割为多个字段,但是分隔符 (还有周围的空格) 并不是固定 的. # str ...

  9. Machine Learning with Python Cookbook 学习笔记 第6章

    Chapter 6. Handling Text 本笔记是针对人工智能典型算法的课程中Machine Learning with Python Cookbook的学习笔记 学习的实战代码都放在代码压缩 ...

最新文章

  1. 扩增子图表解读6韦恩图:比较组间共有和特有OTU或分类单元
  2. 深入理解Java中的内存泄漏
  3. Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源
  4. AWS — Nitro System
  5. c语言编程员工管理的代码,员工信息管理完整(含附源代码).doc
  6. python 减少可调用对象的参数个数
  7. Makefile写法
  8. ThreadLocal 详解
  9. CBitMap的用法 from http://www.cnblogs.com/toconnection/archive/2012/08/04/mfc.html
  10. $.ajax()方法详解(网上引用)
  11. Avalonia跨平台入门第二十篇之语音播放问题
  12. CF993E Nikita and Order Statistics
  13. python dataframe索引转成列_如何将 Pandas DataFrame 的索引转换为列
  14. Android Theme.Dialog 到光 AppCompatDialog
  15. C#获得SQLServer服务器名、数据库名、表名、以及字段名
  16. 堆排序代码详解(Java实现)
  17. selenium+python+eclipse 实现 “问卷星”网站,登录与检查登录示例!
  18. 中小学教师计算机培训心得,小学教师信息技术培训心得体会2篇
  19. CentOS 7 部署RabbitMQ 服务
  20. loss 加权_为每个类别/实例编写自定义损失加权,对,的,loss

热门文章

  1. 安卓工控主板运行时会自动重启_工控主板在工业自动化中的应用
  2. 中天数相减获得差_Power BI 了解DAX中LASTDATE和MAX之间的区别
  3. 【转】C#实现SM3国密加密
  4. OpenCR arduino problem list
  5. 第十节:委托和事件(2)(泛型委托、Func和Action、事件及与委托的比较)
  6. rsyslog syslog详解
  7. java构造方法的签名_如何在 Java 中构造对象(学习 Java 编程语言 034)
  8. 【Python 标准库学习】多种操作系统接口和常用路径操作库 — os 与 os.path
  9. Hexo 博客本地预览报错:Error: listen EADDRINUSE 0.0.0.0:4000
  10. 三星sec.android.soagent,3.0降级2.5教程