Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >向numpy中的列添加矩阵行

向numpy中的列添加矩阵行
EN

Stack Overflow用户
提问于 2018-02-23 02:07:29
回答 1查看 548关注 0票数 1

假设我有两个具有维度的3D矩阵/张量:

代码语言:javascript
代码运行次数:0
复制
[10, 3, 1000]
[10, 4, 1000]

如何将每个向量的第三个维度的每个组合相加,以获得维度:

代码语言:javascript
代码运行次数:0
复制
[10, 3, 4, 1000]

所以每一行,如果你愿意,在第二个x第三个维度中,每个向量在每个组合中与另一个相加。抱歉,如果这不是很清楚,我很难清楚地表达这一点。

有没有一种聪明的方法可以用numpy或pytorch来做到这一点(对numpy解决方案非常满意,尽管我正在尝试在pytorch上下文中使用它,因此torch张量操作会更好),而不需要我编写一堆嵌套的for循环?

嵌套循环示例:

代码语言:javascript
代码运行次数:0
复制
x = np.random.randint(50, size=(32, 16, 512))
y = np.random.randint(50, size=(32, 21, 512))
scores = np.zeros(shape=(x.shape[0], x.shape[1], y.shape[1], 512))

for b in range(x.shape[0]):
    for i in range(x.shape[1]):
        for j in range(y.shape[1]):

            scores[b, i, j, :] = y[b, j, :] + x[b, i, :]
EN

回答 1

Stack Overflow用户

发布于 2018-02-24 08:08:03

它对你有效吗?

代码语言:javascript
代码运行次数:0
复制
import torch

x1 = torch.rand(5, 3, 6)
y1 = torch.rand(5, 4, 6)

dim1, dim2 = x1.size()[0:2], y1.size()[-2:]
x2 = x1.unsqueeze(2).expand(*dim1, *dim2)
y2 = y1.unsqueeze(1).expand(*dim1, *dim2)

result = x2 + y2

print(x1[0, 1, :])
print(y1[0, 2, :])
print(result[0, 1, 2, :])

输出

代码语言:javascript
代码运行次数:0
复制
 0.2884
 0.5253
 0.1463
 0.4632
 0.8944
 0.6218
[torch.FloatTensor of size 6]


 0.5654
 0.0536
 0.9355
 0.1405
 0.9233
 0.1738
[torch.FloatTensor of size 6]


 0.8538
 0.5789
 1.0818
 0.6037
 1.8177
 0.7955
[torch.FloatTensor of size 6]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48940080

复制
相关文章
Numpy中如何给矩阵增加一行或一列
使用Python的numpy的array结构,如何给矩阵增加一行或者一列呢? 下面提供一种方法,当然numpy还提供了很多API函数可供选择。
卡尔曼和玻尔兹曼谁曼
2019/01/22
4.8K0
Numpy中如何给矩阵增加一行或一列
Numpy中的矩阵运算
大型矩阵运算主要用matlab或者sage等专业的数学工具,但我这里要讲讲python中numpy,用来做一些日常简单的矩阵运算!这是 numpy官方文档,英文不太熟悉的,还有 numpy中文文档
py3study
2020/01/02
1.6K0
python 生成随机矩阵_matlab建立m行n列矩阵
python中有两个模块可以生成随机数,该博客以的numpy模块为例进行生成随机数。(因为矩阵要生成大量的随机数据,故推荐使用numpy模块生成随机数)
全栈程序员站长
2022/11/01
1K0
Numpy 中的矩阵求逆
1. 矩阵求逆import numpy as npa = np.array([[1, 2], [3, 4]]) # 初始化一个非奇异矩阵(数组)print(np.linalg.inv(a)) # 对应于MATLAB中 inv() 函数# 矩阵对象可以通过 .I 更方便的求逆A = np.matrix(a)print(A.I)2. 矩阵求伪逆import numpy as np# 定义一个奇异阵 AA = np.zeros((4, 4))A[0, -1] = 1A[-1, 0] = -1A = np.m
狼啸风云
2020/12/29
4.9K0
Numpy中找出array中最大值所对应的行和列
Python特别灵活,肯定方法不止一种,这里介绍一种我觉得比较简单的方法。 如下图,使用x == np.max(x) 获得一个掩模矩阵,然后使用where方法即可返回最大值对应的行和列。 where返回一个长度为2的元组,第一个元素保存的是行号,第二个元素保存的是列号。
卡尔曼和玻尔兹曼谁曼
2019/01/22
6.4K0
Numpy中找出array中最大值所对应的行和列
numpy如何求矩阵的逆_numpy矩阵
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171658.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/25
1.2K0
SQL中的行转列和列转行
SQL是IT行业很多岗位都要求具备的一项能力,对于数据岗位而言更是如此,甚至说扎实的SQL基础也往往是入职这些岗位的必备技能。而在SQL面试中,一道出镜频率很高的题目就是行转列和列转行的问题,可以说这也是一道经典的SQL题目,本文就这一问题做以介绍分享。
luanhz
2021/06/25
7.2K0
使用 Python 按行和按列对矩阵进行排序
假设我们采用了一个输入的 MxM 矩阵。我们现在将使用嵌套的 for 循环对给定的输入矩阵进行逐行和按列排序。
很酷的站长
2023/02/22
6.1K0
使用 Python 按行和按列对矩阵进行排序
SQL 中的行转列和列转行
行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 的运算符PIVOT来实现。用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的SELECT…CASE 语句中所指定的语法更简单、更具可读性。下面我们通过几个简单的例子来介绍一下列转行、行转列问题。
玖柒的小窝
2021/11/08
5.5K0
SQL 中的行转列和列转行
numpy矩阵操作
广播 for循环计算 a = np.array([1,2,3,4]) b = np.array([10,20,30,40]) c = a * b 输出[ 10 40 90 160] 切片 取值[0,0],[1,1],[2,0] import numpy as np x = np.array([[1, 2], [3, 4], [5, 6]]) y = x[[0,1,2], [0,1,0]] print (y) start: end:step 切片范围,end默认-1 [1,2]
sofu456
2021/12/06
3630
Python之numpy模块的添加及矩阵乘法的维数问题
在Python中,numpy 模块是需要自己安装的,在安装编程软件时,默认安装了pip,因此我们可以用pip命令来安装
用户7886150
2021/01/27
7690
Numpy与矩阵
请注意,本文编写于 980 天前,最后修改于 980 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
1.4K0
Numpy与矩阵
Numpy 定义矩阵的方法
import numpy as np#https://www.cnblogs.com/xzcfightingup/p/7598293.htmla = np.zeros((2,3),dtype=int) a = np.ones((2,3),dtype=int) a = np.eye(3)#3维单位矩阵a = np.empty([2,3],dtype=int)a = np.random.randint(0, 10, (4,3))y = np.array([4, 5, 6])np.diag(y)#以y为主对角线创
狼啸风云
2020/12/01
1.1K0
matlab习题 —— 创建 50 行 50 列全零矩阵、全 1 矩阵、单位矩阵、对角矩阵,输出矩阵第135号元素。
创建 50 行 50 列全零矩阵、全 1 矩阵、单位矩阵、对角矩阵,输出矩阵第 135 号元素。
繁依Fanyi
2023/05/07
3760
matlab习题 —— 创建 50 行 50 列全零矩阵、全 1 矩阵、单位矩阵、对角矩阵,输出矩阵第135号元素。
numpy矩阵位运算
http://www.runoob.com/numpy/numpy-binary-operators.html
用户7886150
2020/12/25
9930
Python numpy tensorflow 中的 点乘 和 矩阵乘法
若 w 为 m*1 的矩阵,x 为 m*n 的矩阵,那么通过点乘结果就会得到一个 m*n 的矩阵。
西湖醋鱼
2020/12/30
2K0
Python numpy tensorflow 中的 点乘 和 矩阵乘法
Python中的Numpy(4.矩阵操作(算数运算,矩阵积,广播机制))
n1 = np.random.randint(0, 10, size=(4, 5))
用户7886150
2021/01/07
9420
numpy 数组增加列,增加行的函数:column_stack,row_stack,删除行或列的函数,delete
def fun_ndarray(): a = [[1,2,7], [-6,-2,-3], [-4,-8,-55] ] b = [3,5,6] a = np.array(a) b = np.array(b) a_b_column = np.column_stack((a,b))#左右根据列拼接 a_b_row = np.row_stack((a,b))#上下按照行拼接 print
狼啸风云
2021/03/03
2.2K0
numpy矩阵转置
numpy矩阵转置只需要这样子: import numpy as np import fractions # 设置以分数形式显示 np.set_printoptions(formatter={'all': lambda x: str(fractions.Fraction(x).limit_denominator())}) # 定义矩阵 c = np.array([[-1/np.sqrt(2), 0, 1/np.sqrt(2)], [0, 1, 0], [1/np.sqrt(2), 0, 1/np.sqr
灯珑LoGin
2022/10/31
8220
点击加载更多

相似问题

在NumPy中向矩阵中添加单列列

24

向R中的矩阵添加列和行

25

如何在Python numpy中向矩阵添加行或列

10

向numpy矩阵添加维数

54

向numpy数组中添加文本列和行标题

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档