高维数组相乘的运算规则
1、同维相乘
相乘必须满足以下两个条件:
- 两个n维数组的前n-2维必须完全相同。例如(3,2,4,2)(3,2,2,3)前两维必须完全一致;
- 最后两维必须满足二阶矩阵乘法要求。例如(3,2,4,2)(3,2,2,3)的后两维可视为(4,2)x(2,3)满足矩阵乘法。
这样的同维矩阵相乘,所得到的维度是:前n-2维不变,后2维进行矩阵乘法。
例如,(3,2,4,2)*(1,2,2,3)——>>(3,2,4,3)
注意:由于广播机制,第一维为1的,可以与第一维任何数相乘,例如:
(1,2,4,2)*(3,2,2,3)——>>(3,2,4,3)与上例结果相同。
import numpy as np# 前两个高维1和2必须对应完全相等!后面两个只需满足矩阵相乘要求即可。
a = np.zeros( (3,2,4,2) )
b = np.zeros( (3,2,2,3) ) w = np.matmul(a,b)
print( w.shape )# 结果:
(3, 2, 4, 3)
2、不同维度
在使用numpy数组时,不同维度相乘无法使用matmul,而使用*进行的是逐元素相乘。
会通过广播机制补充到同维度,再进行同维度的乘法。
例如(2,2,1)*(0,1)
import numpy as np
a = np.floor(10*np.random.random((2,2,1)))
b = [[0],[1]]
# a.reshape(3,3)
print(a)
print(b)c = a*b
# c = np.matmul(a,b)
print(c.shape)
print(c)
可得:
高维数组相乘的运算规则相关推荐
- matlab 高维数组赋值,MATLAB之三(高)维数组的创建
使用下标创建 习惯的,将二维数组的第一维称为行,第二维称为列,对于三维数组的第三维称为页.三维以及三维以上的数组称为高维数组,由于高维数组比较抽样,这里主要以三维数组为例介绍如何创建高维数组.%显示A ...
- numpy之高维数组的转置:transpose方法——通过几何体来迅速理解
首先说明,这个方法是博主在理解高维数组转置的transpose 方法时所提出的,因此严谨性和正确性有待考察,但私以为完全可以这样理解,因此做个记录,如果对你有帮助的话欢迎点赞收藏,如果认为有错误的话请 ...
- Java中高维数组或高维矩阵构建及运算
问题背景 在做实际的商务问题时,经常遇到很高维度的矩阵,针对这个问题,经常会报内存溢出. 最近找到一个fastutil包,可以高效的处理高维数组.下面主要介绍其使用方法. 创建一个二维数组 packa ...
- python高维数据的读取_索引访问高维数组_Python数据分析与科学计算基础篇1:NumPy图解,使抽象的数据具象为可触摸的图形_深度学习视频-51CTO学院...
购买本课程所在专题<Python数据分析师:0基础到数据分析达人>https://edu.51cto.com/topic/2570.html,赠送一本"Python相关图书&qu ...
- Python | Python保存高维数组array,Python用pandas将numpy保存csv文件,Python保存3维数组
保存一维二维数组 # x是你要保存的一维或二维数组 import pandas as pd data = pd.DataFrame(x) data.to_csv('data.csv') 或者这样保存2 ...
- C++之vector的高维数组
vector的高维数组通常利用套娃来实现. 1.一维数组 vector<T> v(...); 利用对象的函数实现对数组的动态操作(类似堆栈). v.push_back(...); //栈入 ...
- 高维数组matlab,MATLAB 高维数组
1 B(2,5,:)=1:3 %子数组赋值创建 数组 B(:,:,1) =0 0 0 0 0 0 0 0 0 1 B(:,:,2) = 0 0 0 0 0 0 0 0 0 2 B(:,:,3) = 0 ...
- python保存高维数组array
如果是1维或2维数组,可以使用np.savetxt(), 如: import numpy as np# 创建数组(2维) a = np.arange(100).reshape((20, 5))# 写入 ...
- matlab学习笔记11_2高维数组操作 squeeze,ind2sub, sub2ind
一起来学matlab-matlab学习笔记11 11_2 高维数组处理和运算 squeeze, ind2sub, sub2ind 觉得有用的话,欢迎一起讨论相互学习~ squeeze 删除单维度–B= ...
最新文章
- Microsoft Store无法下载应用 Windows update服务无法启用,错误5:拒绝访问 的解决方法。
- 因用了Insert into select语句,美女同事被开除了!
- 9.19scikit-learn安装方法
- $AppStart、$AppEnd 全埋点解析
- 推荐一个Windows下好用的终端程序:ConEmu
- 语音识别学习日志 2019-7-17 语音识别基础知识准备6 {维特比算法(Viterbi Algorithm)}
- axure 鼠标变成手,Axure教程|鼠标移入移出自动显示与隐藏三级菜单
- Android amr语音编解码解惑 【转http://blog.csdn.net/xyz_lmn/article/category/922246】
- spine纹理解包 黑底_“包治百病”是真理,这些小众包真的很治愈系
- java,andoid安卓去掉替换字符串中的空字符空格换行等
- Python 网站应用从开发到部署
- python用什么来写模块-使用C语言编写Python模块-引子【转】
- android 图片去色,android替图片去色,返回灰度图片
- 2003 服务器自动重启设置,Win2003定时自动重启的完美方案
- iOS开发细碎知识点总结二
- 攻防世界-MISC-摩斯电码
- 现货期货价格关系(现货期货价格关系分析)
- 二进制转化成ascll_微机原理实验-二进制到ASCII码转换
- 高等学校计算机水平考试分值,请问计算机二级ps的考试题型和分值是怎样的?...
- windowsNote(小便签)
热门文章
- 360加固android app反编译,apk360加固脱壳
- Android Studio TV开发教程(十二)帮助用户在电视上找到您的内容
- 链队列的实现 C语言
- PDF如何翻译成中文?三种方法教你怎样翻译PDF上的文字
- web服务器常见配置搭建详解(超详细)
- 有向图的邻接矩阵和邻接表画法
- MAMP PRO for Mac 使用说明
- java ltp4j_博客 | 收藏 | 100多个DL框架、AI库、ML库、NLP库、CV库汇总,建议收藏!...
- 【六祎 - Java】对象序列化
- python 移动平均线_6移动平均线预测交易