首先,使用下面的代码,创建3个2×2的矩阵A、B、C。

import numpy as np
A = [[1, 2], [3, 4]]
B = [[5, 6], [7, 8]]
C = [[9, 9], [9, 9]]

二维矩阵->二维矩阵

在python中,进行矩阵拼接的语句为:

M = np.concatenate((m1, m2, m3), axis=k)

其中,m1、m2、m3为需要进行拼接的矩阵,axis表示为在哪一个维度进行拼接。
例如:

M = np.concatenate((A, B, C), axis=0)

这行语句表示将A、B、C三个矩阵在第0维(列方向)进行拼接,那么得到的M矩阵为:

如果使用的axis为1(行方向),即:

M = np.concatenate((A, B, C), axis=1)

那么得到的拼接矩阵如下:

二维矩阵->三维矩阵

从上面的演示可知,通过选择不同的axis值,可以使矩阵在不同的维度进行拼接,那么我如果想让A、B、C三个矩阵堆叠在一起,形成一个2×2×3的三维矩阵呢?
例如,希望得到如下矩阵:

显然直接改成axis=2是行不通的。

M = np.concatenate((A, B, C), axis=2)

因为会产生如下报错:

Traceback (most recent call last):File "D:\Anaconda\envs\py37\lib\code.py", line 90, in runcodeexec(code, self.locals)File "<input>", line 1, in <module>File "<__array_function__ internals>", line 6, in concatenate
numpy.AxisError: axis 2 is out of bounds for array of dimension 2

Error中提示的很明显,这三个矩阵没有”2“这个维度,他们只有”0“和”1“两个维度
因此,需要进行维度拓展,将三个2×2的矩阵拓展为三个2×2×1的矩阵,这样他们便拥有了”2“这个维度,做法如下:

A = np.expand_dims(A,axis=2)
B = np.expand_dims(B,axis=2)
C = np.expand_dims(C,axis=2)

使用这三条语句,就会产生如下变化:

即A、B、C三个矩阵从2×2的维度,升维成了2×2×1的维度。
接下来再执行刚刚的那拼接矩阵语句:

M = np.concatenate((A, B, C), axis=2)

那么就会得到如下形式的矩阵:

矩阵M的维度变成了2×2×3。

【python】详解使用numpy模块来拼接矩阵,二维矩阵和三维矩阵相关推荐

  1. c语言malloc用法 数组,详解C语言用malloc函数申请二维动态数组的实例

    详解C语言用malloc函数申请二维动态数组的实例 C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单. Sample one #include int main() { c ...

  2. Python使用tsne进行高维数据可视化实战:二维可视化、三维可视化

    Python使用tsne进行高维数据可视化实战:二维可视化.三维可视化 # 绘制二维可视化图像并添加标签字符函数 def plot_embedding(data, label, title):x_mi ...

  3. Android 详解使用 Zxing实现前置摄像头扫描二维码、生成二维码

    本文同步到简书 现在二维码使用越来越广泛了,几乎处处可见,并且 公司相关的项目中几乎全部都和二维码扫描有关,所以总结一下自己的使用心路历程,总觉得要做点什么来记录自己的成长,让自己的成长有迹可循,如果 ...

  4. c语言中一维数组和二维数组,详解C++中的一维数组和二维数组

    C++一维数组 定义一维数组 定义一维数组的一般格式为: 类型标识符  数组名[常量表达式]; 例如: int a[10]; 它表示数组名为a,此数组为整型,有10个元素. 关于一维数组的几点说明: ...

  5. Python画图(直方图、多张子图、二维图形、三维图形以及图中图)

    Python画图很方便,不管是平时的学习还是教学当中,都将经常用到,特别直观,其中主要用到两个常用的库,一个二维和三维的:matplotlib.pyplot,mpl_toolkits.mplot3d ...

  6. python 将三维数据转为二维_将三维矩阵转换/重塑为二维矩阵

    使用^{},然后使用^{},如下-X.transpose(1,2,0).reshape(-1,X.shape[0]) 解释- 1)您想要得到由X[:, 0, 0].X[:, 0, 1]等组成的行,也就 ...

  7. pythonnumpy矩阵详解_python常用模块numpy解析(详解)

    numpy模块 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 后打开浏览器输入网址http://local ...

  8. python二维图颜色函数_Python绘图之二维图与三维图详解

    各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男" 1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import ...

  9. python三维图切片提取_详解Python二维数组与三维数组切片的方法

    如果对象是二维数组,则切片应当是x[:]的形式,里面有一个冒号,冒号之前和之后分别表示对象的第0个维度和第1个维度: 如果对象是三维数组,则切片应当是x[::],里面有两个冒号,分割出三个间隔,三个间 ...

最新文章

  1. android dump 完整so,Android dump .so 文件crash log
  2. stark组件开发之添加功能实现
  3. SAP MM 巴西采购订单中的NCM Code
  4. SAP Spartacus Focusdirective继承自Lockdirective,静态代码分析
  5. 发布 Rafy .NET Standard 版本 Nuget 包
  6. Java Web学习笔记13:AJAX基础
  7. 微型计算机原理与接口电子教案,《微型计算机原理与接口技术》电子教案研讨.ppt...
  8. 记一次工作中的小坑(关于celery)
  9. eclipse查看git地址_40个适用于Linux管理员和开发人员的git命令(上)
  10. 使用Mat分析大堆信息
  11. 2018CUMCM(数学建模国赛)_B——智能RGV的动态调度策略
  12. 如何快速下载百度网盘大文件
  13. 北风:个人如何在职场中野蛮生长
  14. 建筑行业必看,一招学会工地管理诀窍
  15. 如何从初级程序员顺利晋升到高级程序员?
  16. phpStudy激活码
  17. 中富金石老师靠谱分析:2022年国企改革将着力于三个方向
  18. Linux硬盘镜像获取与还原(dd、AccessData FTK Imager)
  19. 上海交大工科考博经验及技巧略谈【zz】
  20. 金秋“论道”分享——《IPTV直播+技术平台浅析》

热门文章

  1. Chrome-油猴插件及安装
  2. oracle日志保存时间设置,关于日志设置的详细介绍
  3. 大数据架构详解电子书全
  4. 关于常用航模舵机SG90和MG996R的一些使用心得
  5. 航天信息a6找不到服务器怎么办,航天信息A6基础版 操作流程
  6. 关于梦行monxin网络商城如何查询开店邀请码的方法
  7. labview与PLC通过OPC通讯
  8. [人工智能-深度学习-63]:生成对抗网络GAN - 图片创作:普通GAN, pix2pix, CycleGAN和pix2pixHD的演变过程
  9. @Transactional 异常并未回滚
  10. 皮皮安学Java第二十四天