广告
返回顶部
首页 > 资讯 > 后端开发 > Python >20190524-矩阵算法,矩阵相加,矩
  • 174
分享到

20190524-矩阵算法,矩阵相加,矩

矩阵算法 2023-01-31 00:01:28 174人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

1.二维矩阵的转置 arrA = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] def turn(arr): if not arr: return []

1.二维矩阵的转置

arrA = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
def turn(arr):
    if not arr:
        return []
    result = []
    for i in range(len(arr[0])):#原来的列变成行
        temp =[]
        for j in range(len(arr)):#原来的行变成列
            temp.append(arr[j][i])
        result.append(temp)
    return result
print(turn(arrA))

2.矩阵相加,A,B矩阵均需要为一个N*M的矩阵,即相加矩阵的行和列必须相等

def matrix_add(arrA,arrB):
    if not arrA and not arrB:
        return []
    if len(arrA)!=len(arrB)or len(arrA[0])!=len(arrA[0]):
        return 'Error'
    arrC = [[None]*len(arrA[0]) for row in range(len(arrA))]#首先定义结果矩阵
    for i in range(len(arrA)):
        for j in range(len(arrA[i])):
            arrC[i][j] = arrA[i][j] + arrB[i][j]
    return arrC
A = [[1,3,5,4],[7,9,1,3],[13,15,17,42]]
B = [[9,8,7,1],[6,5,4,2],[3,2,1,3]]
print(matrix_add(A,B))

3.矩阵相乘,A,B矩阵需要满足条件为A为m*n的矩阵,B为n*p的矩阵,结果C为m*p的矩阵

C11 = A11*B11+A12*B21+....+A1n*Bn1
C1P = A11*B1p+A12*B2p+...+A1n*Bnp
CMP = Am1*B1p+Am2*B2p+...+Amn*Bnp
arrA的第一个index等于C的第一个index,arrA的第二个index每次逐渐增加
arrB的第一个index每次逐渐增加,同时arrB的第二个index等于C的第二个index。因此,因为C是一个m*p的矩阵
arrA的第一个index= i
arrA的第二个index= k
arrB的第一个index= k
arrB的第二个index= j
A = [[1,3,5],[7,9,11],[13,15,17]]
B = [[9,8],[6,5],[3,2]]

def MatrixMultiply(arrA,arrB):
    if len(arrA[0])!=len(arrB):
        return False
    M = len(A)
    N = len(A[0])
    P = len(B[0])
    arrC = [[None] * P for row in range(M)]
    for i in range(len(arrA)):
        for j in range(len(arrB[0])):
            temp = 0
            for k in range(len(arrB)):
                #print(arrA[i][k],arrB[k][j],end =' ')
                temp = temp+int(arrA[i][k])*int(arrB[k][j])#实现C1P = A11*B1p+A12*B2p+...+A1n*Bnp
            arrC[i][j] = temp
    return arrC

print(MatrixMultiply(A,B))

4.编写函数利用三项式压缩稀疏矩阵
稀疏矩阵:一个矩阵的大部分元素为0,则是稀疏矩阵
三项式:非零项用(i,j,item-value)来表示,假定一个稀疏矩阵有n个非零项,则可以用一个A(0:N,1:3)的二维数组来存储这些非零项
A(0,1)存储稀疏矩阵的行数
A(0,2)存储稀疏矩阵的列数
A(0,3)存储稀疏矩阵的非零项
每个非零项用(i,j,item-value)来表示

def Sparse_Transfer2_Trinomial(sparse):
    trinomial = []
    print(trinomial)
    if not sparse:
        return trinomial
    non_zero = 0
    for i in range(len(sparse)):
        for j in range(len(sparse[i])):
            #print(sparse[i][j])
            if sparse[i][j]:#sparse[i][j]非0
                non_zero+=1
                trinomial.append([i,j,sparse[i][j]])
    trinomial.insert(0,[len(sparse),len(sparse[0]),non_zero])
    return trinomial
Sparse = [[15,0,0,22,0,-15],[0,11,3,0,0,0],[0,0,0,-6,0,0],[0,0,0,0,0,0,0],[91,0,0,0,0,0],[0,0,28,0,0,0]]
print(Sparse_Transfer2_Trinomial(Sparse))

 5.利用三项式转置稀疏矩阵

 先定义稀疏矩阵,将行列交换,其他的位置填充0

def Turn_Sparse(trinomial):
    sparse = [[0]*trinomial[0][1] for i in range(trinomial[0][0])]
    for each in trinomial[1:]:
        sparse[each[1]][each[0]] = each[2]
    return sparse
print(Turn_Sparse(Sparse_Transfer2_Trinomial(Sparse)))

 

--结束END--

本文标题: 20190524-矩阵算法,矩阵相加,矩

本文链接: https://www.lsjlt.com/news/182417.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 20190524-矩阵算法,矩阵相加,矩
    1.二维矩阵的转置 arrA = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] def turn(arr): if not arr: return [] ...
    99+
    2023-01-31
    矩阵 算法
  • mat矩阵和npy矩阵怎么实现互相转换
    这篇“mat矩阵和npy矩阵怎么实现互相转换”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mat矩阵和npy矩阵怎么实现互相...
    99+
    2023-07-02
  • Python 的矩阵传播机制Broadcasting和矩阵运算
    目录一、Python的矩阵传播机制(Broadcasting)二、下面展示什么是python的传播机制三、利用numpy的内置函数对矩阵进行操作四、定义自己的函数来处理矩阵五、总结一...
    99+
    2022-11-11
  • mat矩阵和npy矩阵实现互相转换(python和matlab)
    目录mat矩阵和npy矩阵互相转换numpy.narray矩阵保存为mat文件读取mat文件npy文件与mat文件的保存与读取1. npy文件2. mat文件mat矩阵和npy矩阵互...
    99+
    2022-11-11
  • python中矩阵相加函数sum()
    假如矩阵A是n*n的矩阵A.sum()是计算矩阵A的每一个元素之和。A.sum(axis=0)是计算矩阵每一列元素相加之和。A.Sum(axis=1)是计算矩阵的每一行元素相加之和。 ...
    99+
    2023-01-31
    矩阵 函数 python
  • java实现的n*n矩阵求值及求逆矩阵算法示例
    本文实例讲述了java实现的n*n矩阵求值及求逆矩阵算法。分享给大家供大家参考,具体如下:先来看看运行结果:java版的写出来了,用的跟c语言相同的算法,然后看看能不能以后加个框做成程序:import java.math.*;import ...
    99+
    2023-05-31
    java 矩阵 算法
  • python 的矩阵用法
    在 Python 中,你可以使用多种方法表示和操作矩阵。下面介绍几种常用的矩阵表示方法和相关的操作: 列表列表(List of Lists)表示法:可以使用嵌套的列表来表示矩阵。每个列表代表矩阵的一行,其中的元素代表对应位置的值。     ...
    99+
    2023-09-15
    python 矩阵 开发语言
  • Numpy中的矩阵运算
    安装与使用 大型矩阵运算主要用matlab或者sage等专业的数学工具,但我这里要讲讲python中numpy,用来做一些日常简单的矩阵运算!这是 numpy官方文档,英文不太熟悉的,还有 numpy中文文档 numpy 同时支持 pyt...
    99+
    2023-01-31
    矩阵 Numpy
  • python中的矩阵运算
    转自:https://www.cnblogs.com/chamie/p/4870078.html 摘自:http://m.blog.csdn.net/blog/taxueguilai1992/46581861 python的numpy库...
    99+
    2023-01-31
    矩阵 python
  • 常见矩阵运算Python
    python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。 1.numpy的导入和使用 from numpy import *;#导入numpy的库函数 import numpy as np; #...
    99+
    2023-01-31
    矩阵 常见 Python
  • python实现矩阵乘法
    矩阵相乘需要前面矩阵的行数与后面矩阵的列数相同方可相乘。第一步,先将前面矩阵的每一行分别与后面矩阵的列相乘,作为结果矩阵的行列;第二步算出结果即可。 # 2 3 3 4 # 1 2 ...
    99+
    2022-11-12
  • Python中的Numpy矩阵运算
    目录在学习线性代数时我们所接触的矩阵之间的乘法是矩阵的叉乘,有这样一个前提: 若矩阵A是m*n阶的,B是p*q阶的矩阵,AB能相乘,首先得满足:n=p,即A的列数要等于B的行数。运算...
    99+
    2022-11-12
  • python的常见矩阵运算
    python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包。 1.numpy的导入和使用 from numpy import *;#导入numpy的库函数 import numpy as n...
    99+
    2023-01-31
    矩阵 常见 python
  • python:矩阵的基本运算
    一、Python 矩阵基本运算 引入 numpy 库 import numpy as np python矩阵操作 1)使用 mat 函数创建一个 2X3矩阵 a = np.mat([[1, 2, 3], [4, 5, 6]])  2)使用...
    99+
    2023-09-02
    python 矩阵 numpy
  • 关于python的矩阵乘法运算
    目录一、矩阵乘法1. A@B 和 np.dot(A,B)2. A*B 或 np.multiply(A,B)二、邻接矩阵的相乘的意义1.定义2.问题3.理解4.代码实现一、矩阵乘法 矩...
    99+
    2023-05-17
    python运算 python 矩阵乘法
  • NumPy矩阵乘法的实现
    目录NumPy矩阵乘法逐元素矩阵乘法矩阵乘积运算矩阵点积NumPy矩阵乘法 矩阵乘法是将两个矩阵作为输入值,并将 A 矩阵的行与 B 矩阵的列对应位置相乘再相加,从而生成一个新矩阵,...
    99+
    2023-02-10
    NumPy矩阵乘法
  • MATLAB 矩阵的合并方法
    一维数组直接合并 题目: 数组work1[x1,x2——,xn],work2[y1,y2——,yn],现在要生成一个数组work3, work3中的数据为[x1,x2,x3--xn,y1,y2--yn];        合并方法: 直接将两...
    99+
    2023-09-03
    算法 数据结构 python
  • R语言 实现矩阵相乘100次
    【D1 D2】2*1 【T1 T2】1*2 要求D1和D2随机的变动, 矩阵相乘100次 rm(list=ls()) gc() options(scipen = 2000) ##...
    99+
    2022-11-12
  • matlab 计算点云协方差矩阵
    目录 一、概述 1、算法概述 2、主要函数 二、代码示例 三、结果展示 四、参数解析 输入参数 输出参数 五、参考链接 本文由CSDN点云侠原创,原文链...
    99+
    2023-08-30
    matlab 矩阵 开发语言 线性代数
  • C++矩阵运算的实现简单
    利用C++实现矩阵的构造,通过运算符的重载实现矩阵的乘法、加法等。并且实现矩阵形状的打印,矩阵的打印。 #include<iostream> #include<...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作