python矩阵和向量乘积_向量点积和矩阵乘积的区别
点积 dot product
点积是针对向量而言的。
我们可以理解为维度[n,1]或者[1,n],一维的矩阵。
在python中,我们设置一个array,查看其shape:
>>> import numpy as np
>>> a = np.array([1,2,3,4,5])
>>> a
array([1, 2, 3, 4, 5])
>>> a.shape
(5,)
可以看到维度是(5, ),并不是(5,1)或者(1,5)。
这东西刚接触的时候很容易搞不清楚。我的理解是,python把这个认定为是向量。
而向量的5其实在空间中可以认为是5个维度的意思,每个维度上有一个值。
而两个向量的点积:
>>> b = np.array([2,2,3,3,1])
>>> b
array([2, 2, 3, 3, 1])
>>> b.shape
(5,)
>>> c = np.dot(a,b)
>>> c
32
就是每个元素相乘之后求和。
乘积 product
乘积的概念是针对矩阵来说的。
所以需要满足维度匹配才可以进行乘积,即矩阵乘法。
前面矩阵的列元素个数,需要等于后面矩阵行元素个数。
即维度 [n , m] 和 [m , k] 这两个矩阵才可以乘积。
>>> d = np.matrix([[1,2,3],[2,3,4]])
>>> d
matrix([[1, 2, 3],
[2, 3, 4]])
>>> e = np.matrix([[1,2],[2,3],[4,5]])
>>> e
matrix([[1, 2],
[2, 3],
[4, 5]])
>>> f = np.dot(d,e)
>>> f
matrix([[17, 23],
[24, 33]])
[2 , 3] 的矩阵和 [3 , 2] 的矩阵乘积得到一个 [2 , 2] 的矩阵。
另外,我们不用 matrix 而改用 array 也是可以的:
>>> d_2 = np.array([[1,2,3],[2,3,4]])
>>> d_2
array([[1, 2, 3],
[2, 3, 4]])
>>> e_2 = np.array([[1,2],[2,3],[4,5]])
>>> e_2
array([[1, 2],
[2, 3],
[4, 5]])
>>> f_2 = np.dot(d_2,e_2)
>>> f_2
array([[17, 23],
[24, 33]])
区别
如果我们把两个 array 扩展一个维度出来:
>>> a
array([1, 2, 3, 4, 5])
>>> a_reshape = a.reshape([5,1])
>>> a_reshape
array([[1],
[2],
[3],
[4],
[5]])
>>> a_reshape.shape
(5, 1)
这个时候 array 维度变了。
>>> b
array([2, 2, 3, 3, 1])
>>> b_reshape = b.reshape([5,1])
>>> b_reshape
array([[2],
[2],
[3],
[3],
[1]])
>>> b_reshape.shape
(5, 1)
>>> a_b = np.dot(a,b)
>>> a_b
32
有意思的是,这里(5,1)和(5,1)的维度可以直接做乘积。这应该是python为了便利而扩展的功能吧。
如果我们把b的维度变为 (1,5),结果还是一样的:
>>> b_reshape_2 = b.reshape([1,5])
>>> a_b_2 = np.dot(a,b)
>>> a_b_2
32
>>> b_reshape_2.shape
(1, 5)
如果乘积中一个矩阵超过了一维,那就要做维度匹配了。
原文链接:https://blog.csdn.net/qq_42067550/article/details/105041432
python矩阵和向量乘积_向量点积和矩阵乘积的区别相关推荐
- 向量点积和矩阵乘积的区别
点积 dot product 点积是针对向量而言的. 我们可以理解为维度[n,1]或者[1,n],一维的矩阵. 在python中,我们设置一个array,查看其shape: >>> ...
- java 矩阵求秩_线性代数精华3——矩阵的初等变换与矩阵的秩
矩阵的初等变换这个概念可能在很多人听来有些陌生,但其实我们早在初中的解多元方程组的时候就用过它.只不过在课本当中,这种方法叫做消元法.我们先来看一个课本里的例子: 假设我们要解这个方程,怎么做呢? 首 ...
- 两个3×3矩阵乘法例题_两个3×3矩阵相乘 三个矩阵相乘从左向右算还是从右算起...
两个三乘三矩阵相乘怎么算,在线等 设A为m*p的矩阵,B为p*n的矩阵,那么称m*n的矩阵C为矩阵A与B的乘积,记作C=AB ,其中矩阵C中的第i行第j列元素可以表示为: 例如: 扩展资料: 注意事项 ...
- python如何叉乘_向量点乘与向量叉乘
向量的点积与向量的叉乘应该是高中时解析几何的知识,很久没有用,已经回忆不起来了,最近接触到了,一脸茫然,在此复习下: 1. 向量的点乘 1.1 释义 向量的点乘,也叫向量的内积.数量积,对两个向量执行 ...
- python矩阵乘法分治_分治法实现矩阵乘法
#include #include #include #include using namespace std; int *InitMatrix(int row,int col);//初始化 void ...
- Python numpy中 两个向量相乘得到矩阵
参考 https://stackoverflow.com/questions/28578302/how-to-multiply-two-vector-and-get-a-matrixhttps://b ...
- python 服务端渲染_客户端渲染和服务器渲染的区别
我们都知道,网页上的很多内容之所以能那么丰富,是因为大量的css.js去渲染出这个页面.那么他们是如何渲染的呢?那么就要说到我们本文的两种渲染方式了,即客户端渲染和服务端渲染. 正文 本文将分别讲述两 ...
- 矩阵键盘程序_独立按键与矩阵按键
一.独立按键原理 按键在闭合和断开时,触点会存在抖动现象 硬件消抖电路 独立按键控制程 二.独立按键控制程序 #include "reg52.h" typedef unsigned ...
- python富翁与穷人_穷人和富人最根本的区别
穷人和富人最根本的区别__<> - - 学习别人不代表不可以,目的是为了超越别人 - - 本人觉得这边文章,观点新颖,特此给大家学习下: - - bayaim .2017年6月26日10 ...
最新文章
- 硬核!Python 四种变量的代码对象和反汇编分析
- 今天分享个用Python爬虫爬取Bilibili弹幕的小例子解析
- Visual C++ MFC/ATL开发-高级篇(一)
- 浅析商城网站建设需要注意哪些细节内容呢?
- centos 6.5 配置LDAP服务器+客户端!
- string包含某个字符串_Tcl字符串操作基础2
- JavaScript-使用WeakMap创建对象的私有属性
- K3 LEDE固件更改FRP客户端版本
- python内存管理方法_Python 内存管理大揭秘
- python-面向对向-实例方法的继承
- 初步了解关于js跨域问题
- Logstash+Kibana+多ElasticSearch集群部署
- mysql ignore-columns_坑 - 当insert ignore遇到not null
- php5.2、5.3和5.4,Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置
- 技术提升为管理,最重要的能力是什么?
- 优化element ui中的弹框样式
- oracle相同sql执行计划不同,相同的SQL 在正式和测试环境中执行计划的不同
- 学计算机连系统都不会装,Win7系统安装不了iTunes该如何解决-电脑自学网
- python批处理删除文件夹中以xxx后缀名结尾的文件
- 山东网通/电信用户DNS设置