python矩阵操作:dot、inv、det、eig
矩阵点乘
在numpy中,*号用来对矩阵进行逐元素乘积。
我们熟悉的矩阵点乘,用dot函数。
举个栗子:
import numpy as np
x = np.array([[1, 2], [2, 3]]) # 2*2矩阵
y = np.array([[4, 5], [6, 7]]) # 2*2矩阵
print(x * y) # 逐元素相乘
# [[ 4 10]
# [12 21]]
print(x.dot(y)) # 点乘
# [[16 19]
# [26 31]]
注意:矩阵点乘时需要保证x的列数与y的行数相等。
另外,事情一旦牵扯到一维数组,就会变得比较奇怪。
按一贯的思维,一维数组应该是个行数为1,列数为元素个数的矩阵。
但在点乘计算时,却好像不是这样子的…`
import numpy as np
x = np.array([[1, 2, 3],[4, 5, 6]]) # 2*3矩阵
y = np.array([1, 2, 3]) # 一维数组
y_1 = np.array([[1],[2],[3]]) # 3*1矩阵
print(np.dot(x, y))
# [14 32]
print(np.dot(x, y_1))
# [[14]
# [32]]
在这个栗子中,一维数组[1, 2, 3]是作为一个3*1的矩阵来操作的,而且dot函数返回了一个一维数组。
总结一下:
一个矩阵和一个长度合适的一维数组之间的矩阵乘积,结果是一个一维数组。
.
矩阵的转置、逆、行列式和特征值
numpy.linalg拥有一个矩阵分解的标准函数集。其中包含常见的求逆、行列式等操作。
- X.T:返回X的转置
- inv(X):返回X的逆矩阵
- det(X):返回X的行列式
- eig(X):返回X的特征值和特征向量
下面举个栗子:
import numpy as np
from numpy.linalg import inv,eig, det
x = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]]) # 3阶方阵
trans = x.T
# [[1 4 7]
# [2 5 8]
# [3 6 9]]
inverse = inv(x)
# [[ 3.15251974e+15 -6.30503948e+15 3.15251974e+15]
# [-6.30503948e+15 1.26100790e+16 -6.30503948e+15]
# [ 3.15251974e+15 -6.30503948e+15 3.15251974e+15]]
determinant = det(x)
# -9.51619735392994e-16
eigen_value, eigen_vector = eig(x)
# [ 1.61168440e+01 -1.11684397e+00 -9.75918483e-16]
# [[-0.23197069 -0.78583024 0.40824829]
# [-0.52532209 -0.08675134 -0.81649658]
# [-0.8186735 0.61232756 0.40824829]]
参考资料
《利用python进行数据分析》
python矩阵操作:dot、inv、det、eig相关推荐
- python矩阵操作_Python中的矩阵操作
Numpy 通过观察Python的自有数据类型,我们可以发现Python原生并不提供多维数组的操作,那么为了处理矩阵,就需要使用第三方提供的相关的包. NumPy 是一个非常优秀的提供矩阵操作的包.N ...
- python 矩阵操作
[问题描述] 输入一个N阶矩阵(3≤N≤10且N为奇数),矩阵中元素均为整数,取值在-1000至+1000之间.将该矩阵中元素的最大值放在矩阵中心,元素的最小值放在矩阵的四个边界上,其余位置换成原矩阵 ...
- Python 矩阵基本运算【numpy】
文章目录 一.实验说明 二.Python 矩阵基本运算 1. python矩阵操作 2. python矩阵乘法 3. python矩阵转置 4. python求方阵的迹 5. python方阵的行列式 ...
- Python矩阵基本运算
文章目录 一.python矩阵操作 二.python 矩阵乘法 三.python 矩阵转置 四.python 求方阵的迹 五.python 方阵的行列式计算方法 六.python 求逆矩阵 / 伴随矩 ...
- python矩阵的基本运算
文章目录 一.python矩阵操作 二.python矩阵乘法 三.python矩阵转置 四.python求方阵的迹 五.python方阵的行列式计算方法 六.python求逆矩阵/伴随矩阵 七. py ...
- python矩阵变化_python矩阵变换
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 感觉差不多了吧! 2.灰度共生矩阵特征量(字写的不好,请见谅)2.1对比度度量 ...
- 范德蒙德矩阵在MATLAB中怎么表示,Python 之 Python与MATLAB 矩阵操作总结
Python 之 Python与MATLAB 矩阵操作小结 一.线形代数理论基础 线形代数(linear algebra)是数学的一个分支,研究矩阵理论.向量空间.线性变换和有限维线形方程组等内容. ...
- [转载] numpy.dot numpy.linalg.eig numpy.linalg.svd np.linalg.inv 用法 + 例子
参考链接: Python中的numpy.dot numpy.dot() x是mn 矩阵 ,y是nm矩阵 则x.dot(y) 得到m*m矩阵 >>> np.dot(3, 4) 12 & ...
- python正态分布随机数_Python使用numpy产生正态分布随机数的向量或矩阵操作示例...
本文实例讲述了Python使用numpy产生正态分布随机数的向量或矩阵操作.分享给大家供大家参考,具体如下: 简单来说,正态分布(Normal distribution)又名高斯分布(Gaussian ...
最新文章
- Git学习系列之一些常用的Git命令收录更新ing
- RACER: Rapid and accurate correction of errors in reads 快速、准确地修正读数中的错误
- jedis_通过Jedis API使用排序集
- Spring Cloud Alibaba到底坑不坑?
- springboot接入cas单点登录后跳转不到我需要跳转到页面_单点认证的一点心得
- open live writer
- [HDU 4666]Hyperspace[最远曼哈顿距离][STL]
- ffmpeg 截图太模糊了_PPT图片模糊?导师说放大!
- Zend Framework学习(3)第一个zend应用
- 电导增量法matlab,基于变步长电导增量法MPPT研究.doc
- 在 GitHub 上创建一个 Swift 包:其实一点也不简单
- mysql+基本代码_PHP+MySQL扎实基本功十句话_php
- 在VirtualBox中体验Fedora15与GNOME3
- U盘恢复软件,U盘格式化后怎么恢复数据
- 人工智能(4)发展现状及未来趋势
- 工控行业学什么编程语言比较好_机器人学中最流行的10种编程语言
- 2021年茶艺师(初级)新版试题及茶艺师(初级)考试总结
- 王飞跃谈正来临的第五次工业革命:“未来一定有多个平行的你”
- KUKA youbot机械臂与Moveit工具包(2)
- CS106B Assignment #4:Boggle