首页 > 编程语言 >矩阵乘以向量 Python代码

矩阵乘以向量 Python代码

时间:2024-09-03 21:22:52浏览次数:7  
标签:Python 矩阵 float list 乘以 int ans 向量

回顾 矩阵与向量相乘

设有一个矩阵A(2行3列),设有一个列向量(3个分量)
在这里插入图片描述
不难发现,矩阵×列向量,就是把矩阵看做是n个行向量

然后与被乘的向量进行点乘,点乘得到的数量,就构成了一个新的向量
上面的计算过程如下:
在这里插入图片描述

回顾:矩阵×列向量的必要前提

并不是所有矩阵都可和任意列向量相乘,若要相乘,需满足的条件:

矩阵的列数=列向量的分量个数(或叫元素个数),和矩阵有几行无关
其实很好理解,因为向量点乘必须维度相同。
对于每个行向量,维度就是列数。

代码实现

示例:

Example:
input: a = [[1,2],[2,4]], b = [1,2]
output:[5, 10]
reasoning: 1 * 1 + 2*2 = 5; 1*2+ 2*4 = 10

下面给出实现代码:

def matrix_dot_vector(a:list[list[int|float]],b:list[int|float])-> list[int|float]:
	# 维度不同,返回-1
	if(len(a[0])!=len(b)):
		return -1;
	
	c=[]
	for i in a:
		ans=0
		for j in range(len(i)):
			ans+=(i[j]*b[j])
		c.append(ans)
	return c

标签:Python,矩阵,float,list,乘以,int,ans,向量
From: https://blog.csdn.net/qq_35328355/article/details/141872154

相关文章

  • 螺旋矩阵
    题目:螺旋矩阵分类:数组、矩阵、模拟给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例2:输入:matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,1......
  • python学习
    jieba.lcut()用于对中文分词,split是对字符串操作,使字符变为列表分割importjiebatext="欢迎来到通大"seg_list=jieba.cut(text,cut_all=False)print("精确模式:"+"/".join(seg_list))精确模式:欢迎/来到/通大jieba.posseg()进行词性标注importjie......
  • 30:Python模块&包
    #模块&包#模块(modue)的概念:#在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。#为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种#组织代码的方式。在Pyth......
  • python 怎么判断字符串开头
    函数:startswith()作用:判断字符串是否以指定字符或子字符串开头。一、函数说明语法:string.startswith(str,beg=0,end=len(string))或string[beg:end].startswith(str)参数说明:string:被检测的字符串。str:指定的字符或者子字符串。(可以使用元组,会逐一匹配)beg:设置字符串......
  • (D卷,100分)- 堆栈中的剩余数字(Java & JS & Python&C&C++)
    题目描述向一个空栈中依次存入正整数,假设入栈元素n(1<=n<=2^31-1)按顺序依次为nx…n4、n3、n2、n1,每当元素入栈时,如果n1=n2+…+ny(y的范围[2,x],1<=x<=1000),则n1~ny全部元素出栈,重新入栈新元素m(m=2*n1)。如:依次向栈存入6、1、2、3,当存入6、1、2时,栈底......
  • MATLAB 中的矩阵切片操作
    在MATLAB中,矩阵切片(MatrixSlicing)是一种非常常用的操作,用于从矩阵或数组中提取子集。这种操作非常灵活,可以通过指定行和列的索引来获取子矩阵。矩阵切片在数据处理、算法设计、图像处理等许多领域都非常有用。本文将详细介绍MATLAB中矩阵切片的基本用法和高级技巧。1.基......
  • Python批量分割Excel后逐行做差、合并文件的方法
      本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,基于其中每一个文件,首先依据某一列数据的特征截取我们需要的数据,随后对截取出来的数据逐行求差,并基于其他多个文件夹中同样大量的Excel表格文件,进行数据跨文件合并的具体方法。  首先,我们来明确一下本文的具体需......
  • 【量化交易的数学基础】文科生也能搞懂的线性代数基础:矩阵和向量的那些事儿
    今天,我们继续来聊聊听起来有点可怕的线性代数,但其实,理解它并不需要你具备什么“数学天赋”。只需要一点点好奇心和一点点耐心。坐稳了,我们要启航了!1.矩阵和向量的基本概念和运算矩阵和向量是什么鬼?想象一下,矩阵就像一个表格,横竖排列了一堆数字,比如说我们有个3x3的方阵(对......
  • Python深入理解快速排序算法及其时间复杂度分析
    Python深入理解快速排序算法及其时间复杂度分析快速排序(QuickSort)是一种高效的排序算法,广泛应用于各种实际场景中。它采用分治法(DivideandConquer)策略,通过选择一个基准元素(pivot),将数组分成两部分,使得左侧部分的元素都小于基准元素,右侧部分的元素都大于基准元素。然后递......
  • 高效并发编程:使用Python线程池执行任务
    高效并发编程:使用Python线程池执行任务在现代软件开发中,处理并发任务是提高程序性能和响应速度的关键技术之一。Python作为一种广泛使用的编程语言,提供了多种并发编程工具,其中线程池(ThreadPool)是一个非常实用的工具。本文将详细介绍如何编写一个函数,使用线程池执行一组任务......