首页 > 其他分享 >NumPy的矩阵运算

NumPy的矩阵运算

时间:2024-03-21 10:32:56浏览次数:17  
标签:运算 linalg 方阵 矩阵 print 计算 np NumPy

#作者:小恒不会java
#时间:2024年3月1日
#微信:a13551458597


import numpy as np


# 创建一个2x3的矩阵A
A = np.array([[1, 2, 3], [4, 7, 9]])

# 获取矩阵A的形状
shape_A = A.shape

# 对矩阵A进行转置运算得到矩阵B
B = A.T

# 使用numpy的matmul函数进行矩阵乘法运算(注意:此处原代码中的*A无法进行矩阵乘法,应改为np.matmul(A, B))
C = np.matmul(A, B)

# 使用numpy的dot函数进行矩阵乘法运算
D = np.dot(A, B)

# 创建一个3x3的单位矩阵E
E = np.eye(3)

# 计算矩阵A(假设其为方阵)的迹
F = np.trace(A)

# 计算矩阵A的行列式
try:
    G = np.linalg.det(A)
except np.linalg.LinAlgError:  # 如果矩阵不是方阵,则无法计算行列式
    G = "无法计算,因为矩阵A不是方阵"

# 计算矩阵A(假设其为方阵)的逆矩阵
try:
    H = np.linalg.inv(A)
except np.linalg.LinAlgError:  # 如果矩阵不可逆,则无法计算逆矩阵
    H = "无法计算,因为矩阵A不可逆"

# 因为A并非方阵,所以无法直接计算伴随矩阵,这里我们假设你想要对一个可逆的方阵进行操作
# 假设有一个方阵J
J = np.array([[1, 2], [3, 4]])
# 计算伴随矩阵(实际应为:I = np.linalg.inv(J).T * np.linalg.det(J),但此处A非方阵,故不适用)
# I = np.linalg.inv(J).T * np.linalg.det(J)

# 解多元一次线性方程组,这里由于A不是方阵,所以无法直接求解
# 假设有一个与b维度匹配的方阵K
K = np.array([[1, 2], [3, 4]])
# 计算解向量
# x = np.linalg.solve(K, b)

# 定义b向量
b = np.array([7, 7, 18])

# 在尝试求解之前,我们需要确保矩阵A是方阵且可逆,否则无法进行求解操作
# 若A是可逆的方阵:
# x = np.linalg.solve(A, b)

# 输出结果
print("矩阵A的形状:", shape_A)
print("矩阵转置运算结果:", B)
print("矩阵乘法运算结果(np.matmul):", C)
print("矩阵乘法运算结果(np.dot):", D)
print("单位矩阵E:", E)
print("矩阵A的迹:", F)
print("矩阵A的行列式(如果能计算的话):", G)
print("矩阵A的逆矩阵(如果存在的话):", H)
# print("矩阵的伴随矩阵(仅针对方阵):", I)
# print("线性方程组的解向量:", x)

标签:运算,linalg,方阵,矩阵,print,计算,np,NumPy
From: https://blog.csdn.net/2302_81578551/article/details/136891704

相关文章

  • C++内置 new /delete 运算符浅析
    全文目录malloc()/free()原型解析简化版本用法举例new/delete静态/动态类型new/delete运算符原型常用但没有注意区分的例子使用new分配对象的生存期那new/delete都做什么事呢几个注意点写在最后malloc()/free()提到new/delete运算符就不得不说malloc()/f......
  • 基本运算符
    基本运算符算数运算符:+,-,*,/,%,++,–赋值运算符:=关系运算符:>,<,>=,<=,==,!=逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>(了解即可)条件运算符:?:拓展赋值运算符:+=,-=,*=,/=运算符的优先级:括号>单元运算符>双元运算符>三元运算符具体可看C语言运算符优先级(超详细)-CSDN博客算数运算符......
  • NOJ南邮上机 矩阵变换问题 PROB1020 Python
    PROB1020   矩阵变换问题描述:给定一个 n×m的矩阵,对于 初始矩阵 中所有值为 1 的元素,重置其 所在行列 的所有元素为 0,最后输出整个修改后的矩阵。输入:输入共包含 1+n行。第一行包两个整数 n 和 m,分别表示矩阵的长和宽,题目保证 2≤n,m≤700且 4≤n×m......
  • JavaScript中的“==“和“===“运算符的区别
    JavaScript中的比较运算符"=="和"==="用于比较两个值是否相等。尽管它们的目的相同,但它们在比较过程中采用了不同的策略1.“==”相等运算符:"=="运算符执行一种松散相等比较,它在比较之前会进行类型转换。如果进行比较的两个值类型不同,JavaScript会尝试将它们......
  • C++ 重载运算符返回值问题
    事实上,我们的重载运算符返回void、返回对象本身、返回对象引用都是可以的,并不是说一定要返回一个引用,只不过在不同的情况下需要不同的返回值。那么什么情况下要返回对象的引用呢?原因有两个:允许进行连续赋值;防止返回对象(返回对象也可以进行连续赋值(常规的情况,如a=b=c,而不......
  • cuda规约运算
    归:递归约:减小对于一个矩阵做求和运算若串行求和的话需要o(n)的复杂度但若向下图这样,俩俩并行相加,只需要o(logn)的复杂度__global__voidreduceNeighbored(int*g_idata,int*g_odata,unsignedintn)//g_idata是待求和数组,g_odata存放的是每个线程块求和的结果{ un......
  • 罐头鱼AI视频混剪系统|视频矩阵运营获客
    罐头鱼AI视频混剪系统    在当今数字化时代,视频内容已经成为吸引观众注意力的重要媒介之一。为了帮助用户更轻松地创建、编辑和发布视频内容,q1977470120罐头鱼AI推出了全新的视频混剪系统,让您的视频制作过程更加智能高效。让我们一起来看看罐头鱼AI传单功能的强大特点......
  • 找到丢失的数,异或运算解题
    //存在一个数组A包含n-1个数,这些数为1到n之间的整数,请找到丢失的数?//这里采用异或运算(都为二进制运算)://1.相同数异或为0//2.不同值异或为1//3.0^0=0//4.0^x=x(x不为0)//......
  • 深入理解Java双冒号(::)运算符的使用
    Jdk8中有好多新的特性,比如引入Lambda,简化代码的书写等等我们先看一个关于Lambda的使用 /***输出list*/@Testpublicvoidtest(){String[]array={"aaaa","bbbb","cccc"};List<String>list=Arrays.asList(array);//Java7for(......
  • 软件体系架构课堂测试-矩阵
    软件体系架构课堂测试–架构分析阅读下列案例,回答相关问题:某大银行的一位银行卡办公室的收账经理Liz遇到了一个问题。她每周都收到一份过期未付款的账户名单。这份报告已经从两年前的250个账户增加到现在的1250个账户。为了确定那些严重拖欠债务的账户,Liz需要通读这份报告。严......