numpy基本矩阵操作

2023-11-20

矩阵乘法

numpy当中常用的矩阵乘法有两种,numpy.dot和numpy.matmul 
当对象是2D矩阵的时候,这两个函数都是进行最正常的矩阵乘法

import numpy as np

a = np.array( [ [ 1,2 ], [ 3,4 ] ] )
b = np.array( [ [ 1,2 ], [ 3,4 ] ] )

c = np.matmul( a,b )
d = np.dot(a,b)
print c
print d
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果是一样的

矩阵元素对元素的乘法

也就是常说的elementwise,需要两个矩阵的大小一样(如果不考虑broadcast的话),multiply函数将两个矩阵相同位置的元素分别相乘,或者直接使用*

import numpy as np

a = np.array( [ [ 1,2 ], [ 3,4 ] ] )
b = np.array( [ [ 1,2 ], [ 3,4 ] ] )

c = np.multiply( a,b )
d = a * b
print c
print d
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

传播

如果两个矩阵(或者一个矩阵和一个标量)大小是不符合要求的话(比如大小不一样或者行和列的个数不满足要求),是不能进行运算的。但是在一定的规则下,numpy可以帮你进行broadcast。虽然我一开始对这种特性不以为然,但是后来发现,它对写vectorized的代码是非常有帮助的,而且往往计算效率会更高(因为所谓broadcast只是概念上的,真正运算的时候不会真占用那么多的空间)

当我们说一个标量或者向量要进行broadcast的时候,一定是指进行elementwise的操作,不会进行像矩阵乘法这样的操作

broadcast的原则是这样的,我们设两个向量A,B

A是一个 q * e * t的向量 
B是一个 u * y * l的向量 
那么这两个向量进行运算的时候 
1. 要么某个维度上大小相等,比如q==u 
2. 要么其中一个等于1 
当等于1的时候,就会在那个方向上进行broadcast

import numpy as np

a = np.array( [ [ 1,2 ], [ 3,4 ] ] )
b = np.array( [ [ 1,2 ], [ 3,4 ] ] )

c = 3.0
d = 2.0
rst = a + c
rst1 = b * d
print rst
print rst1
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这个例子当中a是2 * 2的,c和d是1 * 1的,那么c就会在两个维度上broadcast,然后elementwise进行相加

import numpy as np

a = np.array( [ [ 1,2 ], [ 3,4 ], [5,6] ] )
b = np.array( [ [2], [1], [3] ] )
print b.shape

rst = a + b

print rst
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这个例子里面,a是3 * 2的, b是3 * 1的,那么b就会在axis=1这个维度上进行broadcast,然后相加

我们通常用到的例子还有,对于一个100 * 100 * 3的像素,如果要分别对rgb通道分别乘以一个scale的值,只需要对整张图片乘以一个 (3,)的向量,numpy就会自动处理成对每个点的三个通道分别操作

import numpy as np

a = np.array( [ [[ 1,2,3 ], [ 3,4,5 ], [5,6,7] ],
                [[1, 2, 3], [3, 4, 5], [5, 6, 7]],
                [[1, 2, 3], [3, 4, 5], [5, 6, 7]],
                [[1, 2, 3], [3, 4, 5], [5, 6, 7]]] )
b = np.array( [1,2,3] )


rst = a * b

print rst
原文:http://blog.csdn.net/supercally/article/details/54236532
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

numpy基本矩阵操作 的相关文章

  • matlab 获取矩阵大小、行数、列数、元素总个数——size()/length()/numel()

    1 size size 获取数组的行数和列数 s size A 当只有一个输出参数时 返回一个行向量 该行向量的第一个元素时数组的行数 第二个元素是数组的列数 r c size A 当有两个输出参数时 size函数将数组的行数返回到第一个输
  • 2023华为od机试 Java【矩阵的最大值和最小值】

    题目 现在给你一个N M矩阵 M表示有M个矩阵 你的目标是找出M个该矩阵中每列元素的最大值 然后输出这M个值中的最小值 示例1 输入 1 2 3 4 输出 3 代码 import java util Scanner public class
  • 线性代数的本质(十一)——复数矩阵

    文章目录 复数矩阵 附录 极大线性无关组 向量叉积 复数矩阵 矩阵 A A A 的元素 a i j
  • 详解基于罗德里格斯(Rodrigues)公式由旋转向量到旋转矩阵的 Python 实现

    文章目录 旋转向量 rotation vector 旋转矩阵 rotation matrix 罗德里格斯公式 Rodrigues formula 基于 Python 和 NumPy 实现 Rodrigues 公式 旋转向量 rotation
  • python3 通过 pybind11 使用Eigen加速

    python是很容易上手的编程语言 但是有些时候使用python编写的程序并不能保证其运行速度 例如 while 和 for 这个时候我们就需要借助c 等为我们的代码提速 下面是我使用pybind11调用c 的Eigen库的简单介绍 第一步
  • 【每日一题】1572. 矩阵对角线元素的和

    每日一题 1572 矩阵对角线元素的和 1572 矩阵对角线元素的和 题目描述 解题思路 1572 矩阵对角线元素的和 题目描述 给你一个正方形矩阵 mat 请你返回矩阵对角线元素的和 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角
  • OJ: 蛇形矩阵 螺旋矩阵

    题目描述 题目说明 在一个N N的方阵中 填入1 2 N共N个数 并要求构成如下的格式 N lt 10 例 输入描述 多组数据 每行读入一个N 输出描述 对应输出N N的蛇形矩阵 每个数字占3格子 每个蛇形矩阵之间用空行分割 输入样例 3
  • CP4.矩阵的LU分解

    LU分解 将矩阵A分解成的形式 称作矩阵LU分解 L代指下三角矩阵 U代指上三角矩阵 首先用到的是前面讲过的消元法 以下为例子 通过消元操作 最后矩阵A变成了一个上三角矩阵U 那么只要上式左乘一个 就可以转化为 这里的就是L矩阵了 所以 也
  • 矩阵求导网站

    https www matrixcalculus org
  • python绘制混淆矩阵

    之前就了解过混淆矩阵 但是一直没有实践 今天刚好有数据实践一下 这里记录一下代码实现过程 方便以后查阅 python绘制混淆矩阵 matplotlib实现 sklearn实现 sklearn metrics ConfusionMatrixD
  • R手册(Visualise)--GGally(ggplot2 extensions)

    本站已停止更新 查看最新内容请移至本人博客 Wilen s Blog 文章目录 GGally ggmatrix ggplot2矩阵 ggpairs ggplot2广义配对图 ggscatmat 纯粹定量变量的传统散点图矩阵 返回ggplot
  • WebGL 视图矩阵、模型视图矩阵

    目录 立方体由三角形构成 视点和视线 视点 观察目标点和上方向 视点 观察目标点 上方向 在WebGL中 观察者的默认状态应该是这样的 视图矩阵程序 LookAtTriangles js 实际上 根据自定义的观察者状态 绘制观察者看到的景象
  • 点积,内积,哈达玛积的区别

    哈达玛积哈达玛积 Hadamard product 是矩阵的一类运算 若A aij 和B bij 是两个同阶矩阵 若cij aij bij 则称矩阵C cij 为A和B的哈达玛积 或称基本积 乘完之后还是矩阵 点积点积在数学中 又称数量积
  • 抖音seo矩阵系统源码搭建开发详解

    抖音SEO矩阵系统是一个用于提高抖音视频在搜索引擎排名的工具 如果你想开发自己的抖音SEO矩阵系统 以下是详细的步骤 开发步骤详解 确定你需要的功能和算法 抖音SEO矩阵系统包含很多功能 比如关键词研究 内容优化 链接建设 社交媒体营销等
  • 【论文笔记】基于Control Barrier Function的二次规划(QP)控制

    文章目录 写在前面 问题描述 RBF 1 Logarithmic 2 Inverse type 3 Reciprocal ZBF 两者的联系 CBF构建 RCBF ZCBF QP设计 ES CLF CLF CBF QP 写在前面 原论文 C
  • numpy生成等差等比数列

    文章目录 arange linspace logspace arange numpy arange start stop step dtype None 功能 Return evenly spaced values within a giv
  • 《VirtualLab Fusion物理光学实验教程》好书分享

    目录 第一章 物理光学概念介绍 6 1 1 几何光学和光线追迹 6 1 2 物理光学和光场追迹 6 1 3 电场 磁场以及坡印廷矢量 8 1 4 振幅 相位及实部和虚部 9 1 5 振幅 相位与偏振 10 1 6菲涅尔公式 11 1 7 全
  • 华为OD机试真题-螺旋数字矩阵-2023年OD统一考试(C卷)

    题目描述 疫情期间 小明隔离在家 百无聊赖 在纸上写数字玩 他发明了一种写法 给出数字 个数n 和 行数m 0 lt n 999 0 lt m 999 从左上角的1开始 按照 顺时针螺旋向内写 方式 依次写出2 3 n 最终形成一个 m行矩
  • 短视频账号矩阵系统3年独立开发正规接口源码搭建部署开发

    一 矩阵系统源码主要有三种框架 短视频账号矩阵源码的框架有很多种 以下列举其中几种 1 星图矩阵 星图矩阵是抖音官方向商家提供的短视频广告推广平台 是抖音官方的赚钱工具 商家可利用星图矩阵进行广告推广 同时短视频创作者也能通过星图平台获取收
  • 矩阵基本操作

    问题描述 已知一个n n的矩阵 方阵n lt 100 把矩阵主副对角线上的元素值加上x 然后输出这个新矩阵 输入格式 一行两个变量 用空格隔开 代表n和x 接下来的n行每行n列 表示矩阵的数值 用空格隔开 输出格式 输出新矩阵 每个数字5个

随机推荐

  • 公司刚上市就来了个从字节拿28K的人,让我见识到了什么才是测试天花板···

    5年测试 应该是能达到资深测试的水准 即不仅能熟练地开发业务 而且还能熟悉项目开发 测试 调试和发布的流程 而且还应该能全面掌握数据库等方面的技能 如果技能再高些的话 甚至熟悉分布式组件等高级技能 或者说 做个项目小组长 管个3 4号人 应
  • router-link 和 router-view 的 关系

  • vue整合ueditor

    一 前端代码 Ueditor官网地址为 http ueditor baidu com website download html ueditor 下载好之后 将Jsp版本解压 解压后文件夹改名为ueditor 将文件夹中的jsp目录删掉 之
  • Elasticsearch7 清空指定Index 相关数据

    注意 Elasticsearch7 起 Index索引已经不支持创建指定Type 类型 默认取值为 doc Elasticsearch7 清空指定Index 语法 POST 请求 http es 服务器地址 索引名称 delete by q
  • go 进阶 gin实战相关: 五. gin_scaffold 企业脚手架

    目录 一 gin scaffold 企业级脚手架 二 gin scaffold 脚手架安装及使用演示 文件分层解释 开始使用 1 配置开启go mod 功能 2 下载 安装 gin scaffold 3 整合 golang common 4
  • 原生js php ajax,原生Ajax怎么写

    写原生Ajax的方法 首先创建XMLHttpRequest对象 然后编写回调函数onreadystatechange 接着配置请求信息 最后发送请求即可 Ajax Asynchronous JavaScript and XML的缩写 是一种
  • C#使用NuGet包播放视频之二————读取RTSP流

    RTSP流的读取 上篇文章做到读取本地摄像头 基本事都做完了 这篇文章将RTSP流加进去 双击窗体中ToolStrip的RTSP 为之添加事件 事件中编写代码如下
  • Yii2框架(一)安装及目录结构

    如题 对 你要相信自己的眼睛 你没看错确实是Yii2框架 现在都2020年了 刚刚开始折腾Yii2框架难免有些过时 但是没办法 公司目前的项目是基于Yii2开发的 嘿 你说怎么这么巧 我还没用过Yii2框架 没办法 看手册呗 这玩意 万变不
  • Vue2运行报错SyntaxError: Cannot use import statement outside a module

    问题描述 像配置vue3那样配置vue config js的路径代理 代替src后 报错 语法错误 不能在模块外部使用导入语句 原因 模块语法一个是CommonJS module 一个是 ES6 module vue config js里的
  • Google Voice账号的具体保号教程

    Google Voice 官方号码回收规则 https www google com intl zh CN googlevoice program policies html 在9个月内你的Google Voice没拔打电话或接收短信 你的
  • Hbase使用shell命令报错大集锦:

    一 Hbase使用shell命令出现报错 PleaseHoldException Master is initializing 解决办法 0 保证hbase运行着的 1 删除HDFS里hbase文件夹 hdfs dfs rm r hbase
  • 蓝牙BLE连接设备报错onClientConnectionState() - status=133解决方法

    S905平台 Android 5 1 1 WIFI 蓝牙芯片AP6255 客户某蓝牙设备使用他们专用的APK连接不上 查logcat信息如下 D BluetoothAdapter 5097 stopLeScan D BluetoothAda
  • Arduino智能小车随笔(一)

    Arduino智能小车随笔 一 看到小孩的各种STEM课程很火 收费又老贵 就想着不如自己和小孩一起学着做个arduino智能小车 即能让女儿学点编程 又能省了智商税 一举两得 然而到了后面女儿基本上只帮我接线 arduBlock实在无法支
  • ZooKeeper踩坑

    一 下载安装包时要下载文件名中带有bin的安装包 否则会报错 找不到或无法加载主类 org apache zookeeper server quorum QuorumPeerMain Error contacting service 这是由
  • Alluxio集群环境搭建,救救孩子!

    写在前面 最近的一段时间内我会做HDFS Alluxio HBase相关的开发工作 我会继续学习并分享不限于这些组件的知识 正常来说 搭建个集群环境根本不需要专门写个文章 但是这次我必须写 顺带必须小吐槽一下 Alluxio官方文档搭建集群
  • python程序填空题 快乐的数字_Python习题之快乐的数字

    快乐的数字 描述 编写一个算法来确定一个数字是否 快乐 快乐的数字按照如下方式确定 从一个正整数开始 用其每位数的平方之和取代该数 并重复这个过程 直到最后数字要么收敛等于1且一直等于1 要么将无休止地循环下去且最终不会收敛等于1 能够最终
  • Spring Boot整合ElasticSearch

    一 ES客户端 ES提供多种不同的客户端 1 TransportClient ES提供的传统客户端 官方计划8 0版本删除此客户端 2 RestClient RestClient是官方推荐使用的 它包括两种 REST Low Level C
  • vs+qt新建ui项目

    新建项目入门参考教程 新建项目入门参考教程 手动调整UI及程序编写 手动调整UI及程序编写 Qss基础 Qt part 6 QSS Qt样式表 界面美化1 Qt part 7 QSS参考样式表 界面美化2 Qt part 8 QSS 按键菜
  • ArcGIS中KML/KMZ转为.shp文件

    kml kmz到 gt layer到 gt shp 1 打开ArcMap gt ArcToolbox 2 在ArcToolbox中选择 转换工具 gt 由KML转出 gt KML转图层 3 在 KML转图层 的弹出框中 选择并导入KML文件
  • numpy基本矩阵操作

    矩阵乘法 numpy当中常用的矩阵乘法有两种 numpy dot和numpy matmul 当对象是2D矩阵的时候 这两个函数都是进行最正常的矩阵乘法 import numpy as np a np array 1 2 3 4 b np a