Python 矩阵与矩阵以及矩阵与向量的乘法
import numpy as np
numpy模块的array相乘时,有两种方式:一是矩阵形式,二是挨个相乘。
需要用矩阵形式相乘时,则要用np.dot()函数。
#矩阵与矩阵相乘
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
c = a.copy()
print(a * c)
print(np.dot(a, c))
#a*c 得出的结果是a和c中每个元素依次相乘,为3x3的矩阵
#np.dot(a, c) 得到的结果是a和c进行矩阵相乘,为3x3的矩阵 #矩阵与向量: a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([1,2,3])
print(a.shape) #(3,3)
print(b.shape) #(3,)
print(a*b)
#a中的每-行的每个数与b中的每一行的每个数都相乘(相加时也是一样,等价于b = [[1,2,3],[1,2,3],[1,2,3]]
#array([[1,4,9],[4,10,18],[7,16,27]]),
print(b*a) #这个结果与a*b是一样的 b = b.T
b.shape # 即使对b转置,b依然为(3,),b为行向量还是列向量时,是看具体用的时候在矩阵左边还是右边,会自动变换
#a 是3*3矩阵,b是3*1的矩阵,可以相乘
print(np.dot(a, b)) # array([14, 32, 50]),此时b当作一个3x1的列向量,得到的结果为(3,) #b是3*1的矩阵a 是3*3矩阵,从矩阵维度来说,不能直接相乘,python会自动转换
print(np.dot(b, a)) # array([30, 36, 42]),此时b当作一个1x3的行向量,得到的结果为(3,)
print(np.dot(b.T, a)) # array([30, 36, 42]),此时b当作一个1x3的行向量,得到的结果为(3,)
Python 矩阵与矩阵以及矩阵与向量的乘法的更多相关文章
- 学习笔记DL004:标量、向量、矩阵、张量,矩阵、向量相乘,单位矩阵、逆矩阵
线性代数,面向连续数学,非离散数学.<The Matrix Cookbook>,Petersen and Pedersen,2006.Shilov(1977). 标量.向量.矩阵.张量. ...
- Python 中的几种矩阵乘法 np.dot, np.multiply, *【转】
本文转载自:https://blog.csdn.net/u012609509/article/details/70230204 Python中的几种矩阵乘法1. 同线性代数中矩阵乘法的定义: np.d ...
- python学习1---列表、矩阵、数组
1.列表与数组区别 numpy数组的所有元素类型是相同的,而列表的元素类型是任意的. 2.numpy数组与矩阵区别 矩阵必须是二维的,数组可以是多维的,matrix是array的一个分支. matri ...
- 线性代数-矩阵-【1】矩阵汇总 C和C++的实现
矩阵的知识点之多足以写成一本线性代数. 在C++中,我们把矩阵封装成类.. 程序清单: Matrix.h//未完待续 #ifndef _MATRIX_H #define _MATRIX_H #incl ...
- 线性代数-矩阵-【2】矩阵生成 C和C++实现
矩阵的知识点之多足以写成一本线性代数. 所以我们把矩阵的运算封装成矩阵类.以C++为主进行详解. 点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Lia ...
- Luogu 3390 【模板】矩阵快速幂 (矩阵乘法,快速幂)
Luogu 3390 [模板]矩阵快速幂 (矩阵乘法,快速幂) Description 给定n*n的矩阵A,求A^k Input 第一行,n,k 第2至n+1行,每行n个数,第i+1行第j个数表示矩阵 ...
- 2D-2D:对极几何 基础矩阵F 本质矩阵E 单应矩阵H
对极约束 \[ \boldsymbol{x}_{2}^{T} \boldsymbol{F} \boldsymbol{x}_{1}=\boldsymbol{0} \quad \hat{\boldsymb ...
- C语言 矩阵的转置及矩阵的乘法
C语言 矩阵的转置及矩阵的乘法 //凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1.矩阵的转置 #include<stdio.h> #defi ...
- HDU 1757 A Simple Math Problem 【矩阵经典7 构造矩阵递推式】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=1757 A Simple Math Problem Time Limit: 3000/1000 MS (J ...
- HihoCoder 1480:矩阵填数 (杨氏矩阵 || 钩子公式 + 筛逆元)
描述 小Hi在玩一个游戏,他需要把1, 2, 3, ... NM填入一个N行M列的矩阵中,使得矩阵每一行从左到右.每一列从上到下都是递增的. 例如如下是3x3的一种填法: 136 247 589 给定 ...
随机推荐
- Python网络爬虫 - 3. 异常处理
handle_excpetion.py from urllib.request import urlopen from urllib.error import HTTPError from bs4 i ...
- mac上xcode4和xcode5共存及修改默认打开方式
先安装xcode4 安装之后,在所有程序里面---改名xcode 为 xcode4 安装xcode5 安装之后,在所有程序里面---改名为xcode 为xcode5 安装4,5之后,默认打开方式就是 ...
- 【UNIX网络编程】FIFO
管道作为进程间通信的最古老方式,它的缺点是没有名字,因此仅仅能用在有亲缘关系的父子进程之间.对于无亲缘关系的进程间.无法用管道进行通信.FIFO能够完毕无亲缘关系的进程间的通信.FIFO也被称为命名管 ...
- knockoutjs -- all built-in buildings
所有可用的binding值 文字和显示:visible, text, html, css, style, attr 流程控制:foreach, if, ifnot, with form字段:click ...
- css background-position结合disaply:inline-block使用
$(".icon-a").on('click', function (e) { if ($(this).next().css('display') == "none&qu ...
- ado.net 调用带参数的存储过程
String connString = "Data Source = localhost; Initial Catalog = hkjc;User ID = sa;Pwd = 123&quo ...
- 在 Ubuntu12.04/Xubuntu12.04 上安装 QQ2012,这才是真正可行的
2012-5-18 11:16:29 1. 安装wine 终端下输入: sudo apt-get install wine 复制代码 有人这样:sudo apt-get install wine ...
- js特效,轻松实现内容的无缝平滑滚动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...
- win7 下配置 java 环境变量[转]
首先,你应该已经安装了 java 的 JDK 了,笔者安装的是:jdk-7u7-windows-x64 接下来主要讲怎么配置 java 的环境变量,也是为了以后哪天自己忘记了做个备份 1.进入“计算机 ...
- cmd启动JMeter
<配置cmd当前变量启动JMeter> 前因: 不想配置当前windows的环境变量,减少配置污染,故自己写一个启动脚本.每次启动直接双击就可以了. 启动脚本和目录结构是下面这样的: 脚本 ...