07-行向量列向量_向量的运算 加法,数乘,减法,转置

article/2025/7/20 5:55:34

行向量和列向量

其实它们非常简单,所谓的行向量就是我们的向量表示,一组数这组数码成一行,那么所谓的列向量呢?就是这组数码成一列而已,那么对于行向量还是列向量,在我们的学习中是并没有区别的,我们这篇呢,只讲向量,那么对于向量呢,就是一组有序的数字,我们怎么码它并不重要。但是当我们到矩阵的时候,怎么码这个向量的这一组数据就变得有关系了。

行向量是按行把向量排开(横着来写), 列向量是按列把向量排开(竖着来写)
在这里插入图片描述

在数学中我们更多的把数据写成列向量,在编程语言中更多的把数据存成行向量!在这里插入图片描述

如果想在编程语言中把行向量转化成列向量的形式可以用reshape方法重新定义数组形状, 不过变化形状后的数组,它的维度也会改变;T属性不是没用, 它虽然形式上没变,但a.T是一个列向量, 它会在后面进行矩阵操作的时候, 能够明显的看到转置后的区别。
在这里插入图片描述

reshape 方法中的 -1 表示自动计算该维度的大小。当你在调用 reshape 方法时,如果将某一个维度设置为 -1,NumPy 会根据数组的总元素个数和其他维度的大小自动计算该维度的大小,以保持数组的原始元素总数不变。

向量的运算 加法,数乘,减法, 转置

光上面定义向量是没有用的,肯定还要定义向量的一些运算,它有加减乘除一些运算,下面我们一 一列举:
在这里插入图片描述

向量 X+Y

等于它们的分量分别相加,显然两个向量的长度得是相等的,减法我们在这里不列举,很容易举一反三

向量相加的和是以AB为边所对应的平行四边形的对角线, 相应的这个向量就是a+b。

在这里插入图片描述

在这里插入图片描述

  • 向量的加法实际上大家可以理解成我们从原点出发,先走到(5, 2)这个位置。之后再从(5, 2)这个位置出发走(2, 5),相当于是(2, 5)这个向量所对应的这么多的位移。最终,我们到达的这个位置就是向量加法的结果。那么,这个最终的结果,大家可以看到。相当于是从零零这个位置到达了这个位置,我们在这里呢,绘制出了这样的一个三角形的形状。
  • 如果我们在这个三角形的另外一侧相应的也补上和这两个向量平行的这两条边的话, 那么大家就可以看到向量加法的最终结果, 其实就是以这两个向量为边所对应的这个平行四边形的对角线,那么这就是为什么两个向量相加之后,最终的结果是这样的一个平行四边形的对角线的原因。
  • 那么,具体的从数值的角度讲,这两向量相加结果是什么呢?答案是(7, 7),也就是两个向量相加的结果是将这两个向量中每一个分量分别相加,最终组合成的一个向量。大家也可以验证一下

在这里插入图片描述

那么,这样的一个数值计算的结果和我们在这里直观的看到的这个向量加法的几何意义?他们之间的关系是什么呢?其实也非常好理解。大家可以想象一下。在这里,对于我们(5, 2)这个向量,在我们的坐标轴中,它就可以理解成是先向这个x的正方向移动五个单位,再向y的正方向移动两个单位。之后我们又加上了一个(2, 5),那么(2, 5)这个向量呢?其实就是向量在(5, 2)这个点的基础上,再向x的正方向移动两个单位,之后再向y的正方向移动五个单位。那么总共我们在x方向就移动了7个单位,而在y这个方向上呢,也是七个单位,这样一来我们就得到了(5, 2)和(2, 5)这两个向量相加,它们的数值结果是(7, 7), 对应的几何儿就直观的表示在坐标轴中,是这两个向量围边所对应的平行四边形的对角线,那么这就是向量的加法。
( 5 2 ) + ( 2 5 ) = ( 7 7 ) \begin{pmatrix}5 \\ 2\end{pmatrix} + \begin{pmatrix} 2\\5\end{pmatrix} = \begin{pmatrix} 7\\ 7\end{pmatrix} (52)+(25)=(77)
三维空间也同理
( 1 2 3 ) + ( 4 5 6 ) = ( 5 7 9 ) \begin{pmatrix}1 \\ 2\\3\end{pmatrix} + \begin{pmatrix} 4\\5 \\6\end{pmatrix} = \begin{pmatrix} 5\\ 7\\9\end{pmatrix} 123 + 456 = 579
n维向量也同理
( v 1 v 2 ⋯ v n ) + ( u 1 u 2 ⋯ u n ) = ( v 1 + u 1 v 2 + u 2 ⋯ v n + u n ) \begin{pmatrix}v_1 \\v_2 \\\cdots \\v_n\end{pmatrix} + \begin{pmatrix}u_1 \\u_2 \\\cdots \\u_n\end{pmatrix} = \begin{pmatrix}v_1 +u_1\\v_2 + u_2\\\cdots \\v_n + u_n\end{pmatrix} v1v2vn + u1u2un = v1+u1v2+u2vn+un

数乘(数量乘法) 运算

它是一个数和这个向量的每个分量相乘, 其实就相当于多次的加法操作而已, 在坐标系中表示就是一个向量走了多次
2 × ( 1 2 3 ) = ( 2 4 6 ) = ( 1 2 3 ) + ( 1 2 3 ) 2\times \begin{pmatrix}1 \\ 2\\3\end{pmatrix} = \begin{pmatrix}2 \\ 4\\6\end{pmatrix} = \begin{pmatrix}1 \\ 2\\3\end{pmatrix} + \begin{pmatrix}1 \\ 2\\3\end{pmatrix} 2× 123 = 246 = 123 + 123
k × ( a , b ) T = ? k\times(a, b)^T = ? k×(a,b)T=?
n维向量同理:
k . ( v 1 v 2 ⋯ v n ) = ( k . v 1 k . v 2 ⋯ k . v n ) k.\begin{pmatrix}v_1 \\v_2 \\\cdots \\v_n\end{pmatrix} = \begin{pmatrix}k.v_1 \\k.v_2 \\\cdots \\k.v_n\end{pmatrix} k. v1v2vn = k.v1k.v2k.vn
其实就相当于:总共向x移动Ka个单位, 总共向y移动kb个单位, 最终结果 ( k a , k b ) (ka, kb) (ka,kb)

在这里大家一定要注意好, 对于向量加法和数乘这两种运算, 它们的运算对象是不一样的。对于向量的加法, 它是定义在两个向量上的一个运算, 而对于向量的数乘, 它是定义在一个标量和一个向量上的运算

转置

  • 把列向量变成行向量, 把行向量变成列向量。
  • 行向量和列向量在现阶段, 没有区别
  • 对于通常的教材或者论文来说,一旦提到了一个向量,都是指列向量,换句话说,我们习惯性的更愿意把向量中的这些数字码成一列,而并不是一行。虽然我们在阅读的时候是一行一行的这样阅读的,具体我们为什么更愿意把向量这些数字码成一列?对于这背后的原因,我们也会在后面向大家具体介绍。由于我们的书籍印刷是一行一行的。进行印刷的那么为了表示这个列向量,有的时候就会使用这样的一种符号,(3, 4)这个向量我们先把它写成一行。之后在右上角标一个T 变成 ( 3 , 4 ) T (3, 4)^T (3,4)T 这个其实是一个运算符号,表示的是把这个向量进行一下转置的操作。那么,具体什么是转置操作?如下图就是一个转置的过程。
    在这里插入图片描述

其实它所做的事情就是把这个行向量颠倒90度变成一个列向量,这样呢,我们就可以在一个行的空间中表达一个列向量, 因为我们把这些数字码成一列太占空间,太占版面了。只是这个原因而已,那么对于这些约定俗成的符号儿,大家在这里先有一个了解, 后面会详细介绍.

🎯实战—实现属于我们自己的向量

我们说过向量其实就是组有序的数字,那么在计算机程序中,数组就是个最直接的来表示一组有序数字的方式,所以我们设计成我们的用户,如果想构造一个向量相应的对象类的话。就只需要在构造函数中传入一个数组就好了,那么python中数组叫做list, 对应的这个传进来的参数名,我就管它叫做list这样的一个缩写lst,那么相应的这个lst的内容,我就把它传给我在我们的这个vector中设置一个叫做values这样的一个私有的变量,这个私有的变量。具体的使用一个数组的方式来存储

  • __repr__魔术方法是供系统来调用的在这里插入图片描述

  • __str__魔术方法是供用户来调用的, 用户使用print方法打印出变量的方式在这里插入图片描述

其实就是对于represent这个函数所返回的字符串儿,应该表示的是我们的这个类的对象对应的构造方法应该写成什么样子的一个字符串儿,而对于。str所返回的结果就是从用户的角度来看,这个对象是什么样子。

文件结构:

├───Linear_Algebra
│   │   main_vector.py
│   │           
│   ├───playLA
│   │   │   Vector.py
│   │   │   __init__.py

Vector.py:

# coding: utf-8class Vector:def __init__(self, lst):self._values = lstdef __getitem__(self, index):"""取向量的第index个元素"""return self._values[index]def __len__(self):"""返回向量的长度(有多少个元素)实际上就相当于向量的维度"""return len(self._values)# 定义显示向量的方法--系统调用def __repr__(self):return 'Vector({})'.format(self._values)# 定义显示向量的方法--用户调用def __str__(self):return "({})".format(", ".join(str(e) for e in self._values))

main_vector.py:

from playLA.Vector import Vectorif __name__ == '__main__':vec = Vector([5, 2])print(vec)print(len(vec))print("vec[0] = {0}, vec[1] = {1}".format(vec[0], vec[1]))

http://chatgpt.dhexx.cn/article/bAnRSxXQ.shtml

相关文章

矩阵相乘求解最小数乘次数

矩阵连乘问题: 给定n 个矩阵(A0,A1,....An-1) 其中 Ai 和 Ai1 是可乘的, i0, 1,... , n-2 . 求解计算这n 个矩阵的连乘积A0A1....An-1 。 由于矩阵连乘满足结合律,因此矩阵的乘法可以有多种不同的计算次序,每种计算次序对应不同…

人工智能数学基础-线性代数1:向量及向量加减法与数乘

☞ ░ 老猿Python博文目录░ 一、向量 1.1、向量定义 向量也称为欧几里得向量、几何向量、矢量,指具有大小(magnitude)和方向的量。它可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度&#xff1…

线性代数-向量数乘、点乘意义

Vector 什么是向量基向量向量数乘向量的加法向量点乘 什么是向量 向量是指具有大小和方向的量。它可以形象化地表示为带箭头的线段 箭头所指:代表向量的方向 线段长度:代表向量的大小 向量是线性代数中最基础、最根源的组成部分,向量加法和…

C语言——矩阵计算(转置、加法、减法、数乘、乘法)

使用该计算器可以帮助你快速完成矩阵的简单计算。 #include <stdio.h> void menu() {printf("****************************************************************\n");printf("****************************************************************\n"…

各种乘法的区别 “点积、外积、数乘...等

Ive seen several conventions, including ⋅⋅, ∘∘, ∗∗, ⊗⊗, and ⊙⊙. However, most of these have overloaded meanings (see http://en.wikipedia.org/wiki/List_of_mathematical_symbols). Thus, in my personal experience, the best choice Ive found is: ⊙(\o…

06 ,矩阵的运算:加法运算,数乘,矩阵乘向量,矩阵相乘

1 &#xff0c;矩阵计算 &#xff1a; 加法运算 前提 &#xff1a; 必须同型矩阵之间才可以进行加法运算运算 &#xff1a; 两个 m * n 矩阵相加总结 &#xff1a; 对应元相加 2 &#xff0c;矩阵计算 &#xff1a; 数乘 计算规则 &#xff1a; 3 &#xff0c;矩阵计算 &…

7.进入线性代数的奇妙世界:向量的乘法之数乘

向量的乘法有3种&#xff0c;一是数乘&#xff0c;二是点积&#xff0c;三是叉积。听起来名称有点陌生&#xff0c;别急&#xff0c;接下来一一道来&#xff0c;先讲数乘。 数乘&#xff0c;就是用数字乘以一个向量&#xff0c;或用向量乘以一个数字&#xff0c;两者之间结果相…

【图像特征提取】基于脉冲耦合神经网络(PCNN)实现图像特征提取含Matlab源码

1 简介 脉冲耦合神经网络&#xff08;PCNN——Pulse Coupled Neural Network&#xff09;,由于其非常接近人类大脑的生物神经网络的特性&#xff0c;现已广泛应用在图像处理中&#xff0c;是一种重要的信息处理工具&#xff0c;具有优良的自适应图像分割和自适应特征提取能力。…

CRCNN PCNN

目录 论文阅读前期准备前期知识储备学习目标 论文导读论文研究背景、成果及意义论文泛读论文结构摘要 论文精读CRCNN模型PCNN模型论文总结 论文阅读前期准备 前期知识储备 学习目标 论文导读 论文研究背景、成果及意义 回顾 Bootstrapping 远程监督 多示例学习 分类损失…

传统PCNN算法python实现

传统耦合神经网络&#xff08;pcnn&#xff09;算法的实现&#xff08;python&#xff09;&#xff1a; 参数的设定没有具体参考&#xff0c;这是一篇文献中的解释&#xff1a; # coding:utf-8 # from PIL import Image from pylab import * from scipy import signal as sg…

关系抽取远程监督PCNN:Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks

Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks 0 前言1 多示例学习2 数据集3 模型架构3.1 向量表示3.2 卷积、分段最大池化与分类3.3 样本选择与损失 5 结语6 参考资料 0 前言 远程监督&#xff08;distant supervision&#xff…

脉冲耦合神经网络(PCNN)的python实现

前言 看了很多人用matlab写的网络,竟然没有python代码。作为正在研究PCNN模型的一名学生,必须安排。 数学模型 打公式太麻烦,直接从截图啦,全连接模型,如下图1。 python代码 """ Created on Sun Jun 6 16:48:38 2021PCNN全连接 """ impor…

pytorch关系抽取框架OpenNRE源码解读与实践:PCNN ATT

pytorch关系抽取框架OpenNRE源码解读与实践&#xff1a;PCNN ATT 0 前言1 OpenNRE整体架构2 PCNNATT 模型架构2.1 PCNN Encoder2.2 Bag Attention 结语参考资料 0 前言 OpenNRE是清华大学推出的开源关系抽取框架&#xff0c;针对命名实体识别&#xff0c;句子级别的关系抽取&a…

【MATLAB图像融合】[14]PCNN脉冲耦合神经网络代码分享

本代码转自厦门大学屈小波教授15年的DEMO代码。 % Demo for PCNN in image processing % --------- % Author: Qu Xiao-Bo <qxb_xmu [at] yahoo.com.cn> Aug.28,2008 % Postal address: % Rom 509, Scientific Research Building # 2,Haiyun Campus, Xi…

PCNN探究实验

1.常规PCNN&#xff0c;采用kin的连接权矩阵&#xff0c;并固定参数beta 0.2 alph 0.22 Ve 50 周期为15 初次迭代&#xff0c;图像信息熵最大&#xff0c;但效果不是最好的&#xff0c;在周期临界位置的不同迭代次数有不同的分割效果&#xff0c;第11次迭代效果最好。 因此…

脉冲耦合神经网络(PCNN)的matlab实现

基本脉冲耦合神经网络的matlab实现 Gray 首先发现了猫的初生视觉皮层有神经激发相关振荡现象&#xff0c;并将其研究结果发在了 Nature 杂志上。与此同时&#xff0c; Eckhom 也根据猫的大猫皮层的同步脉冲发放现象&#xff0c;提出了脉冲发现的连接模式&#xff0c;将开拓性地…

【MATLAB图像融合】[18]双通道PCNN模型实现图像融合

引言 简单回顾一下以往的单通道PCNN模型&#xff0c;原理与实现步骤&#xff1a; 13、单通道PCNN原理 14、单通道PCNN融合代码实现 一、单通道PCNN 图1 单通道PCNN&#xff1a; 在单通道PCNN中&#xff0c;对于一个神经元的一次迭代过程正如图1描述&#xff1a; ①、F&#…

PCNN

Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks 1. 关键字 关系抽取&#xff0c;远程监督 2. 摘要 本文提出了PCNNs&#xff0c;用来解决远程监督关系抽取中的两个问题&#xff1a;一个是在对齐知识图谱时的错误标注问题&#xff0…

【NLP】基于神经网络PCNN(Piece-Wise-CNN)的关系抽取模型

背景 关系抽取是信息抽取的基本任务之一&#xff0c;对于知识库的构建以及文本的理解十分重要&#xff0c;在自然语言处理的一些任务&#xff0c;如问答&#xff0c;文本理解等得到了广泛的应用。 这里介绍的关系抽取主要指的是实体之间的关系抽取&#xff0c;实体是之前NER任…

PCNN 脉冲耦合神经网络整理

PCNN 脉冲耦合神经网络 脉冲耦合神经元模型 神经元的输入有哪些&#xff1f; 首先来看看这个神经元的图示的左边&#xff0c;有 Y Y Y和 F F F。 Y Y Y为这个神经元之前输出的数值&#xff0c;就是说这个模型需要进行多次的运算&#xff0c;每次的运算需要上一次运算的值来做…