首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用numpy将数组元素添加到矩阵的每一列中

使用numpy将数组元素添加到矩阵的每一列中
EN

Stack Overflow用户
提问于 2020-08-09 19:11:37
回答 3查看 505关注 0票数 2

我有一个矩阵3x3,数组有3个值,我希望将数组的每个值添加到矩阵的每一列中,因此,例如,如果我有矩阵,比如:

代码语言:javascript
复制
[[1, 2, 3],
 [4, 5, 6],
 [7, 8, 9]]

数组[1, 2, 3],我想得到这样的结果

代码语言:javascript
复制
[[2, 3, 4],
 [6, 7, 8],
 [10, 11, 12]]

但是现在,当我试图将数组添加到矩阵中时,它会按列添加它,所以我得到了以下内容:

代码语言:javascript
复制
[[2, 4, 6],
 [5, 7, 9],
 [8, 10, 12]]

而我不能改变轴加运算或找方法来做这样的计算。也许我需要在几步之内完成?还是我漏掉了什么?

EN

回答 3

Stack Overflow用户

发布于 2020-08-09 21:34:46

一个优雅的解决方案是

代码语言:javascript
复制
A

>>>  [[1, 2, 3],
      [4, 5, 6],
      [7, 8, 9]]
代码语言:javascript
复制
B

>>>  [1, 2, 3]
代码语言:javascript
复制
ans = A + B[:, None]
ans

>>> [[ 2,  3,  4],
     [ 6,  7,  8],
     [10, 11, 12]]
票数 1
EN

Stack Overflow用户

发布于 2020-08-10 05:45:50

您可以使用numpy.newaxis操作符,如Code 1(在格栅书-Jake的Python数据科学手册中解释)中所示,以实现所需的结果:

代码1:

代码语言:javascript
复制
import numpy as np


A = np.array(
    [[1, 2, 3],
     [4, 5, 6],
     [7, 8, 9]]
)
x = np.array([1, 2, 3])
A + x[np.newaxis:]

输出:

代码语言:javascript
复制
Out:
array([[ 2,  4,  6],
       [ 5,  7,  9],
       [ 8, 10, 12]])

如果您正在处理大型数据集中的数字数据,那么它也将是在速度和内存消耗方面完成此任务的最有效方法,因为由于numpy的类型意识,numpypython.list对象高效得多。

干杯。

票数 1
EN

Stack Overflow用户

发布于 2020-08-09 19:26:27

这样做的方法之一是以下几点。

代码语言:javascript
复制
array1 = [[1, 2, 3],
         [4, 5, 6],
         [7, 8, 9]]

array2 = [1, 2, 3]

for i in range(0, len(array2)):
    for j in range(0, len(array1[i-1])):
        array1[i][j] += array2[i]


print(array1)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63330330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档