本文实例讲述了Python实现的矩阵转置与矩阵相乘运算。分享给大家供大家参考,具体如下:

矩阵转置

方法一 :使用常规的思路 def transpose(M):

# 初始化转置后的矩阵

result = []

# 获取转置前的行和列

row, col = shape(M)

# 先对列进行循环

for i in range(col):

# 外层循环的容器

item = []

# 在列循环的内部进行行的循环

for index in range(row):

item.append(M[index][i])

result.append(item)

return result

思路:矩阵的转置就是从行变成列, 列变成行 先定义一个最终存放矩阵的容器 先对列进行循环i,并定义一个临时数组用于存放数据,在每次列的循环内部,再次对行进行循环j,取第M[j][i]个元素存入一个临时数组中 在每次列循环完毕,将临时数组存入最终数组中 当列循环完毕, 最终数组就是矩阵的转置

方法二:使用zip解包 def transpose(M):

# 直接使用zip解包成转置后的元组迭代器,再强转成list存入最终的list中

return [list(row) for row in zip(*M)]

思路:

zip 解包后,返回一个将多个可迭代对象组合成一个元组序列的迭代器,正如: my_zip = list(zip(['a', 'b', 'c'], [1, 2, 3]))

print(my_zip) # [('a', 1), ('b', 2), ('c', 3)]

在每次循环中将元组强转成list 并存入总list中

矩阵相乘 def matrixMultiply(A, B):

# 获取A的行数和列数

A_row, A_col = shape(A)

# 获取B的行数和列数

B_row, B_col = shape(B)

# 不能运算情况的判断

if(A_col != B_row):

raise ValueError

# 最终的矩阵

result = []

# zip 解包后是转置后的元组,强转成list, 存入result中

BT = [list(row) for row in zip(*B)]

# 开始做乘积运算

for A_index in range(A_row):

# 用于记录新矩阵的每行元素

rowItem = []

for B_index in range(len(BT)):

# num 用于累加

num = 0

for Br in range(len(BT[B_index])):

num += A[A_index][Br] * BT[B_index][Br]

# 累加完成后,将数据存入新矩阵的行中

rowItem.append(num)

result.append(rowItem)

return result

说明: A矩阵与B矩阵的乘法运算,最终得到新的矩阵X , 思路 首先判断是否可以相乘:前提条件是A的列与B的行要相同 我们可以画图理解:假如A是3行5列,B是5行2列,相乘结果是3行2列 将B转置后是2行5列,我们称之为BT, 这样 A 和 BT 都是5列了 则A的每行中的第 i 个元素 * BT每行中的第 i 个元素,相加构成新矩阵X的新行,循环A行,共3行,则新矩阵X就会逐步添加新行,待循环完毕,得到新矩阵X

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

矩阵以及转置矩阵python_Python实现的矩阵转置与矩阵相乘运算示例相关推荐

  1. java二维矩阵怎么进行转置_矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)...

    〇. 前言 在一个多月前,针对有同学关于矩阵求导中分子布局.分母布局两者的区别的疑问,我写了如下的这篇答案. 矩阵求导中布局约定,两者布局的意义是什么?​www.zhihu.com 虽然这篇答案给出了 ...

  2. 将矩阵的行列互换得到的新矩阵称为转置矩阵

    KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答. 输入描述: 第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔. (1≤n≤10,1 ...

  3. Python列表实现矩阵的创建、输入输出、转化转置、加减乘运算并设计一个矩阵计算器GUI界面

    背景:在解决一些编程问题中如棋盘的初始化,链表,队列的构建:数据处理中如用SAS软件输入数据等涉及到矩阵的概念,而用编程语言实现矩阵的方式有C中的数组,python中的列表等.现在给你一个数据如下,或 ...

  4. 矩阵求逆,矩阵转置,矩阵相乘

    矩阵求逆,矩阵转置,矩阵相乘 矩阵求逆用的高斯消元 #include <bits/stdc++.h>using namespace std;const double eps = 1e-8; ...

  5. 实现矩阵的转置原矩阵与转置后矩阵的乘机

    /*** Created by lihaibin02 on 2016/9/19.*/ public class Matrix_Operation {//实现矩阵的转置public static voi ...

  6. 矩阵的基础知识与公式(转置,逆,迹,行列式)

    矩阵的基础知识与公式(转置,逆,迹,行列式) References: MatrixCookBook(Version 2012) Chapter1 Chapter1: Basics 1 Basics 注 ...

  7. python矩阵转置_867. 矩阵转置(Python)

    题目 难度:★☆☆☆☆ 类型:几何.二维数组.数学 给定一个矩阵 A, 返回 A 的转置矩阵. 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引. 示例 示例 1 输入:[[1,2,3], ...

  8. C语言矩阵运算器,实现矩阵加法、减法、乘法、转置和退出。

    C语言矩阵运算器,实现矩阵加法.减法.乘法.转置和退出. C语言矩阵运算器,实现矩阵加法.减法.乘法.转置和退出.-C文档类资源-CSDN下载C语言矩阵运算器,实现矩阵加法.减法.乘法.转置和退出.更 ...

  9. Python矩阵计算类:计算矩阵加和、矩阵乘积、矩阵转置、矩阵行列式值、伴随矩阵和逆矩阵

    最近在Python程序设计中遇到一道设计矩阵计算类的题目,原题目要求计算矩阵加和和矩阵乘积,而我出于设计和挑战自己的目的,为自己增加难度,因此设计出矩阵计算类,不仅可以求出矩阵加和和矩阵乘积,还能计算 ...

最新文章

  1. 在python3环境安装builtwith模块
  2. ae中英文切换_AE技巧,AE CC软件如何切换中英文版
  3. 算法----摆动序列
  4. lede旁路由作用_关于电容的旁路与去偶总结
  5. Golang之funcval结构体
  6. boost::range模块replaced_if相关的测试程序
  7. Linux下远程桌面连接windows
  8. 在腾讯云上安装mysql遇到的问题
  9. Java8 Stream详解~ 提取/组合
  10. ue4 运行禁用鼠标_从零开始——三:关闭电脑无用服务提高运行速度
  11. ktor框架用到了netty吗_Netty系列相关面试题汇总
  12. 《编程之美:分层遍历二叉树》的另外两个实现
  13. php远程文件无法编辑,“脚本编辑器”远程文件编辑漏洞
  14. 搜索框键盘抬起事件2
  15. 软件测试作业随笔之二:Homework 2
  16. mysql 视频教程下载_最全138节Mysql数据库+PHP零基础到精通视频教程【云盘下载】...
  17. 大一到研二我收藏了数百个网址,从中挑选了十五个最值得收藏的网址推荐给你
  18. 山科OJ:Problem C: Lemon
  19. 无盘服务器吃鸡卡,无盘新手必备知识
  20. LOGO创意-IT行业-随记

热门文章

  1. [NCTF2019]babyRSA
  2. 《CCNA路由和交换(200-120)学习指南》——2.2节OSI参考模型的各层
  3. 计算机制作电脑小报总结,制作电脑小报的写事作文
  4. 用shader实现屏幕波纹效果
  5. 什么是DI(依赖注入),依赖注入的原理
  6. 2022国际开源节(IOSF)锁定9月,元宇宙产业风向标地位稳了!
  7. c++中的字符串大小排序
  8. linux和python学哪个好一些-作为一个Python自学者,怎样学好Python?
  9. Gazebo仿真--加载世界模型
  10. odoo tree视图默认分组