矩阵以及转置矩阵python_Python实现的矩阵转置与矩阵相乘运算示例
本文实例讲述了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实现的矩阵转置与矩阵相乘运算示例相关推荐
- java二维矩阵怎么进行转置_矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇)...
〇. 前言 在一个多月前,针对有同学关于矩阵求导中分子布局.分母布局两者的区别的疑问,我写了如下的这篇答案. 矩阵求导中布局约定,两者布局的意义是什么?www.zhihu.com 虽然这篇答案给出了 ...
- 将矩阵的行列互换得到的新矩阵称为转置矩阵
KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答. 输入描述: 第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔. (1≤n≤10,1 ...
- Python列表实现矩阵的创建、输入输出、转化转置、加减乘运算并设计一个矩阵计算器GUI界面
背景:在解决一些编程问题中如棋盘的初始化,链表,队列的构建:数据处理中如用SAS软件输入数据等涉及到矩阵的概念,而用编程语言实现矩阵的方式有C中的数组,python中的列表等.现在给你一个数据如下,或 ...
- 矩阵求逆,矩阵转置,矩阵相乘
矩阵求逆,矩阵转置,矩阵相乘 矩阵求逆用的高斯消元 #include <bits/stdc++.h>using namespace std;const double eps = 1e-8; ...
- 实现矩阵的转置原矩阵与转置后矩阵的乘机
/*** Created by lihaibin02 on 2016/9/19.*/ public class Matrix_Operation {//实现矩阵的转置public static voi ...
- 矩阵的基础知识与公式(转置,逆,迹,行列式)
矩阵的基础知识与公式(转置,逆,迹,行列式) References: MatrixCookBook(Version 2012) Chapter1 Chapter1: Basics 1 Basics 注 ...
- python矩阵转置_867. 矩阵转置(Python)
题目 难度:★☆☆☆☆ 类型:几何.二维数组.数学 给定一个矩阵 A, 返回 A 的转置矩阵. 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引. 示例 示例 1 输入:[[1,2,3], ...
- C语言矩阵运算器,实现矩阵加法、减法、乘法、转置和退出。
C语言矩阵运算器,实现矩阵加法.减法.乘法.转置和退出. C语言矩阵运算器,实现矩阵加法.减法.乘法.转置和退出.-C文档类资源-CSDN下载C语言矩阵运算器,实现矩阵加法.减法.乘法.转置和退出.更 ...
- Python矩阵计算类:计算矩阵加和、矩阵乘积、矩阵转置、矩阵行列式值、伴随矩阵和逆矩阵
最近在Python程序设计中遇到一道设计矩阵计算类的题目,原题目要求计算矩阵加和和矩阵乘积,而我出于设计和挑战自己的目的,为自己增加难度,因此设计出矩阵计算类,不仅可以求出矩阵加和和矩阵乘积,还能计算 ...
最新文章
- 在python3环境安装builtwith模块
- ae中英文切换_AE技巧,AE CC软件如何切换中英文版
- 算法----摆动序列
- lede旁路由作用_关于电容的旁路与去偶总结
- Golang之funcval结构体
- boost::range模块replaced_if相关的测试程序
- Linux下远程桌面连接windows
- 在腾讯云上安装mysql遇到的问题
- Java8 Stream详解~ 提取/组合
- ue4 运行禁用鼠标_从零开始——三:关闭电脑无用服务提高运行速度
- ktor框架用到了netty吗_Netty系列相关面试题汇总
- 《编程之美:分层遍历二叉树》的另外两个实现
- php远程文件无法编辑,“脚本编辑器”远程文件编辑漏洞
- 搜索框键盘抬起事件2
- 软件测试作业随笔之二:Homework 2
- mysql 视频教程下载_最全138节Mysql数据库+PHP零基础到精通视频教程【云盘下载】...
- 大一到研二我收藏了数百个网址,从中挑选了十五个最值得收藏的网址推荐给你
- 山科OJ:Problem C: Lemon
- 无盘服务器吃鸡卡,无盘新手必备知识
- LOGO创意-IT行业-随记