【问题标题】:Numpy: adding n-dimensional vector to m-dimensional vector to get (n, m) matrixNumpy:将n维向量与m维向量相加得到(n,m)矩阵
【发布时间】:2018-11-23 16:59:28
【问题描述】:

假设我有数组 [1,2,3,4,5]。 我想向它“添加”数组 [2,4,6,8],这样我就得到了

[[3,5,7,9],
 [4,6,8,10],
 [5,7,9,11],
 [6,8,10,12],
 [7,9,11,13]]

(或其转置)。

这可能有一个功能,但我似乎找不到它,因为我不确定要搜索什么。

【问题讨论】:

  • 搜索outer add

标签: numpy array-broadcasting numpy-ndarray


【解决方案1】:

正如@Divakar 所建议的,最好的方法是使用add.outer

a1 = np.array([1,2,3,4,5])
a2 = np.array([2,4,6,8])

np.add.outer(a1,a2)

但你也可以明确地将broadcast 你的a1 数组设置为正确的形状,然后添加到a2

a1[:,None]+a2
# essentially equivalent to:
# a1.reshape(-1,1)+a2

两者都产生:

array([[ 3,  5,  7,  9],
       [ 4,  6,  8, 10],
       [ 5,  7,  9, 11],
       [ 6,  8, 10, 12],
       [ 7,  9, 11, 13]])

【讨论】:

  • 谢谢!这正是我想要的。
猜你喜欢
  • 2014-12-24
  • 1970-01-01
  • 1970-01-01
  • 2023-01-19
  • 1970-01-01
  • 2020-11-18
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
相关资源
最近更新 更多