关于numpy中的一维行向量、列向量的理解

Numpy生成行向量,列向量(1024水勋章文) 文章目录前言一、行向量与列向量生成1.行向量2.列向量总结 前言 就注意一点,下面这句话 np.array([1,2,3]) print(np.array([1,2,3]).shape) 既不是行向量,也不是列向量,你输出它的shape:(3,)。是这么个东西,你可以理解成就是一个维度是三的array。 一、行向量与列向量生成 1.行向量 # 1.产生行向量的方法 row_vector1 = np.array([1, 2, 3]).reshape(1, -1) #最常用 row_vector2 = n 阅读详情
AI摘要

本文通过实测揭示了numpy中一维向量作为行向量或列向量的灵活性,指出其根据与矩阵运算的上下文可以充当不同角色,并强调了使用二维矩阵明确向量方向的实践建议。

许久以来都有一个疑问,numpy中的一维向量究竟是行向量还是列向量呢?

今天得空,测试一下。

思路

思路很简单,利用点乘两个向量维度要对应的特性测试。

  • 1.创建一个4*2矩阵a和一个一维numpy向量b
  • 2.使a点乘b,如果a和b的点乘np.dot(a,b)不报错,就说明一维向量b为2*1的列向量。如果报错,说明b肯定不是列向量。
  • 3.如果2不报错,将b转置,再使a点乘b,如果a和b的点乘np.dot(a,b)还不报错,就说明一维向量b既可以当做列向量也可以当做行向量。

代码测试 

思路中的第1和第2步测试代码如下:

a = np.array([[1,1,1,1],[1,1,1,1]]).T #4*2矩阵
b = np.array([2,3]) #长度为2的一维向量
print(a)
print(b)
print(a.shape)
print(b.shape)
print(np.dot(a,b))

输出:

 

很好,我们现在已经确定,一维向量b可以作为列向量与矩阵a相乘。

接着测试思路中的第3步,将b也做一下转置,看看a和b的点乘会不会出现问题,代码如下:

a = np.array([[1,1,1,1],[1,1,1,1]]).T #4*2矩阵
b = np.array([2,3]).T #长度为2的一维向量
print(a)
print(b)
print(a.shape)
print(b.shape)
print(np.dot(a,b))

输出:

 amazing,它居然也可以进行点乘,这就说明:numpy中的一维向量既可以作为行向量,也可以作为列向量存在。

结论

为了验证我的思路是否准确,我查阅了网上其他很多人的说法,和我的理解综合一下,总结下来,可以得到如下结论:

  1. 一维数组的转置仍是自己本身,这点根据上述实验的一维向量b的shape就能看出来,b.T(转置后)维度不变。
  2. 对于numpy中的一维向量b,可以认为它既不是行向量也不是列向量,它只是一个长度为2的一维向量。但是根据我的实验,我认为你也可以把他理解为它既可以做行向量同时也能做列向量,具体是行向量还是列向量根据与他进行点乘的矩阵而定。
  3. 在上述实验中可以得到一维向量既可以做行向量也可以做列向量,那对于任意一个给定的一维向量,我们就无法确定他到底是行向量还是列向量,为了防止这种尴尬的境地,习惯上用二维矩阵而不是一维矩阵来表示行向量和列向量,因为二维必定能够确定他是行向量还是列向量。

对于3,见下例:

b = np.array([[2,3]]) #行向量
c = np.array([[2],[3]]) #列向量
print(b)
print(c)
print(b.shape)
print(c.shape)

输出: 

这就是本文全部内容了,对向量在计算机中的表示形式又多了一点理解,针不搓~     (✪ω✪)

 

深度学习基础数据结构之张量:从一维到多维 张量是一个多维数据容器,可以用来表示各种数据类型,如数值、图像、音频、文本等。本文将介绍一维、二维、三维和四维张量的形象展示、应用以及对学习理解的作用。 阅读详情

相关推荐

图解Python numpy基本操作

Numpy是python的一个非常基础且通用的库,基本上常见的库pandas,opencv,pytorch,TensorFlow等都会用到。 Numpy的核心就是n维array,这篇文章将介绍一维,二维和多维array。 Numpy与List的异同点 他俩非常相似,同样都是容器,都能快速的取值的修改值,但是插入和删除会慢一点。 Numpy的优点 更紧凑,特别是多维数据 当数据可以向量化的时候比list更快 通常是同质化的,数据相同时处理更快,比如都是浮点型或者整数型 向量 Vector

m0_64355682的博客 869

向量空间

《目录》 包含向量 向量的“运动”依然在空间中 特性的向量空间 子空间 基底 张成空间 向量我们都很清楚,其实空间不太明白。 小说里的空间,大概是上图这样。 包含各种物质,比如星体、生物、能...

Debroon 1692

python中numpy广播功能(broadcasting)的一些注意事项

Python的特性允许你使用广播(broadcasting)功能,这是Python的numpy程序语言库中最灵活的地方。而我认为这是程序语言的优点,也是缺点。优点的原因在于它们创造出语言的表达性,Python语言巨大的灵活性使得你仅仅通过一行代码就能做很多事情。但是这也是缺点,由于广播巨大的灵活性,有时候你对于广播的特点以及广播的工作原理这些细节不熟悉的话,你可能会产生很细微或者看起来很奇怪的bu...

angciyu的博客 2170

【Python】深入理解NumPy数组中的一维向量

Numpy中的数组shape为(m,)说明它是一个一维数组,或者说是一个向量所以说,无须纠结得到的一维数组是行向量还是列向量,或者说一维数组在用户看来就没有行列之分,其行列的不同在Python计算时会自动进行处理。

weixin_44943389的博客 2107

海康视觉平台VisionMaster实战入门:从通讯配置到工具应用

本文为海康VisionMaster视觉平台实战入门指南,详细介绍了从软件安装准备、与PLC等外部设备的通讯配置,到匹配定位、测量、畸变矫正等核心工具的应用方法。通过实战案例拆解,帮助工程师快速掌握如何搭建完整的机器视觉检测与引导定位系统,实现工业自动化项目落地。

weixin_29224309的博客 1010

CH592F RISC-V蓝牙LED灯设计:WS2812B驱动与微信小程序控制

蓝牙低功耗(BLE)是嵌入式物联网设备主流无线通信技术,其核心在于协议栈轻量化、射频稳定性与外设协同调度。基于RISC-V内核的蓝牙SoC(如CH592F)凭借高集成度、低待机电流和免外部巴伦的射频设计,显著降低硬件复杂度与BOM成本;而WS2812B作为单线级联RGB LED,依赖微秒级精准时序,需借助定时器+DMA机制规避CPU干预,保障动态效果流畅性。该方案融合电容触摸交互、GATT服务自定义与微信小程序标准Bluetooth API对接,适用于智能照明、DIY彩灯及教学实践等场景,是BLE+LED实

weixin_31163455的博客 433

深度学习入门 - np.dot,np.multiply,星号(*)之间的关系

文章目录一.相关概念1.1 一维数组1.2 行向量1.3 列向量1.4 矩阵二. 一维数组计算2.1 计算元素积(*)2.2 计算内积(np.dot)2.3 multiply进行计算三.行向量,列向量的计算3.1 计算元素积(*)3.2 计算内积(np.dot)3.3 multiply进行计算四. 矩阵的计算4.1 计算元素积(*)4.2 计算内积(np.dot)4.3 multiply进行计算五. 总结 一.相关概念 1.1 一维数组 一维数组在python中是用 list 存储。用numpy创建一个一维

Hhjnv的博客 1035

史上最小白之RNN详解

1.前言 网上目前已经有诸多优秀的RNN相关博客,但是我写博客的出发点主要是为了加深和巩固自己的理解,所以还是决定自己再进行一下总结和描述,如有不正确的地方欢迎指正~ 2.区分RNN 循环神经网络(Recurrent Neural Network),递归神经网络(Recursive Neural Network),你有没有发现他们的缩写都是RNN,那他们两个是同一回事儿吗?网上有一些博客把这两就当...

Tink1995的博客 4万+

Numpy中的行向量和列向量

列向量 import numpy as np a=np.array([1,2,3]) print(a,a.shape) 结果: [1 2 3] (3,) 行向量 import numpy as np b=np.array([1,2,3]).reshape((1,-1)) print(b,b.shape) 结果: [[1 2 3]] (1, 3) 总结 形如np.arra...

Suprecat的博客 5万+

光致发光(Photoluminescence, PL)入门版

关于光致发光的实际应用做出一些解释。

sinat_40546227的博客 1万+

目标检测旋转增强源码带方向

解法1: import cv2 import math import numpy as np import os def get_degree(p1,p0): aaa = math.degrees(math.atan2((p1[1] - p0[1]), (p1[0] - p0[0]))) if aaa < 0: aaa = 360 + aaa aaa = (aaa + 90) if aaa > 360: aa...

jacke121的专栏 2084

python Numpy 的一维数组 1D array 既是行向量也是列向量,矩阵相乘符号@

我发现 Numpy 中的一维数组既可以是行向量也可以是列向量: import numpy as np a = np.array([1, 2, 3, 4]) In [18]: a.shape (4,) IPdb [19]: a.T.shape (4,) 可以发现,一维数组的转置就是它自身。 若在定义数组时,里面有两个中括号,就是一个行向量了。 b = np.array([[1, 2, 3 ,4]]) In [24]: b.shape (1, 4) 但若 numpy 的二维数组与一维数组做矩阵乘法,一维

天天向上的专栏 5772

【AI理论学习】深入理解扩散模型:Diffusion Models(DDPM)(理论篇)

继OpenAI在2021提出的文本转图像模型之后,越来越多的大公司卷入这个方向,例如谷歌相继推出了和。一些主流的文本转图像模型,例如,和采用了扩散模型()作为图像生成模型,这也引发了对扩散模型的研究热潮。与GAN相比,扩散模型训练更稳定,而且能够生成更多样的样本,OpenAI的论文也证明了

小哲的博客 5212

【菜鸟学习】Numpy中的一维数组到底是行向量or列向量?

学习矩阵*向量、向量*矩阵的时候没有明白这个一维数组到底是行向量还是列向量。

请多多指教 1021

试读源码在这里下载

试读文章的源码在这里下载。源码不做任何修改,重点重点重点:为了代码运行不报错,安装matlab 版本为 2021 及以上版本。matlab安装教程大家可以参考这个教程:手把手教你安装matlab软件。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4302

自然语言处理:长文本场景下的关键词抽取实践

自然语言处理:长文本场景下的关键词抽取实践

丨汀、的博客 2076

Tensor 数组、列向量、行向量

学习神经网络的时候经常被一个概念混淆,今天终于算是进一步理解。记录一下。 无论是在python里的numpy,还是各种框架里的tensor, 数组就是一个数组而已,不等同于行向量或者列向量。 但是它有转化成行/列向量的潜质(通过特定函数如unsqueeze增加维度)。 举个例子 x1 = torch.Tensor([1, 2, 3, 4, 5]) x2 = torch.unsqueeze(x1, dim=1) # 打印x1,x2的size print(x1.size()) # torch.Size([5]

liuwp5的博客 4379

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python 把行向量转为列向量

python相关学习资料:https://edu.51cto.com/video/1158.htmlhttps://edu.51cto.com/video/3502.htmlhttps://edu.51cto.com/video/4102.htmlPython中将行向量转换为列向量的指南 作为一名经验丰富的开发者,我...

weixin_37086506的博客 846

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

d8958的博客 1万+

一维数组、行向量、列向量的区别

注意三者的区别,在构建神经网络时候可以避免错误 import numpy as np C = np.random.randn(5) #产生随机的一维数组 print(C) ''' out: [ -5.65042297e-01 -5.48341047e-01 4.15160628e-04 -3.24193205e-02 -3.01925976e-01] ''' D = np....

qq_36090423的博客 7567

2.16 关于 Python Numpy 的说明-深度学习-Stanford吴恩达教授

关于 Python Numpy 的说明 (A Note on Python/Numpy Vectors) 课程PPT

赵继超的笔记 4509

python矩阵点乘和叉乘_Numpy 中的乘法

0 一维 array 对象np中的一维向量有个特殊的用法,即将行或列设为 None,来进行转换。a = np.array(range(5)) # np.arange(5)a.shapeOut: (5,) # 实际是行向量,注意表示方式的不同。a[None,:].shapeOut: (1,5) # 1 x 5 行向量a[:,None].shapeOut: (5,1) # 5 x 1 列向量进一步理解...

weixin_39571403的博客 3577

numpy中一维数组的行为

对于numpy.dot(): 一维数组置于矩阵乘法的左部,被视为一个行向量; 一维数组置于矩阵乘法的右部,被视为一个列向量; 矩阵乘法运算结束得到的向量仍是一维数组。 原因:numpy 中的 broadcasting(广播)机制 【例1】一维数组置于矩阵乘法的右部,因为最常见,所以放在第一个来举例 import numpy as np a = np.random.randint(0, ...

夏天了啊的专栏 1078

numpy中一个列向量乘以一个行向量为什么是一个数

平时在学习使用numpy库时,会遇到一种情况,假如说我想计算一个列向量乘以一个行向量的结果,我们的思路大概是这样: 首先创建一个数组,里面包含3个数字,查看一下数据和数据的形状: 一个列向量乘以一个行向量,常规思路是np.dot(a.T,a),就是a和它的转置相乘,先看一下a.T长啥样: 这里发现a和a.T形状竟然一样,都是(3,) 看一下计算结果: 本来以为是一个3*3的矩阵,结果是一个数...

weixin_44976373的博客 6266

关于一维数组是行向量还是列向量,numpy dot用法

可以说一维数组具有行列结构,其中行数为 1,列数为数组的长度。但在通常情况下,我们更倾向于将其视为单个维度的数组。在后期神经网络的学习中np.a.shape()即数组的维度数很重要,我们甚至不需要去研究数组的具体形状,但对应维度数必须相同。np.dot一般计算矩阵的乘法,但是在np.dot(a,b)a与b两个都是一维向量时,是计算向量的内积。得到结果是[4,],开始以为一维数组是行向量,那么输出结果为什么不是[,4]。一维数组没有明确的行列概念,但仍然可以将其视为拥有一行和。

loyaltyck的博客 852

Numpy维度总结(维度理解、一维二维初始化、高维向低维的转化)

Numpy维度总结。学机器学习时,numpy的维度问题始终没搞清楚,今天总结了下。提示:以下是本篇文章正文内容,下面案例可供参考。

qq_40967086的博客 5679
上一篇: 【各学校通用】5分钟刷完天津科技大学雨课堂视频
下一篇: 【思特奇杯·云上蓝桥-算法集训营】第1周
小小的香辛料
小小的香辛料 领域专家: 算法与数据结构技术领域 领域专家: 算法与数据结构技术领域
博客等级 码龄9年 1万+粉丝 385原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小的香辛料

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值