如何用numpy表示1行向量和1列向量八度的总和

问题描述

八度语法允许“添加”行向量和列向量以产生矩阵:

 3 * [1:4] + 4 * [1:4]'

代码构建以下矩阵:

    7   10   13   16
   11   14   17   20
   15   18   21   24
   19   22   25   28

numpy有任何类似的方法吗?

解决方法

您可以使用广播:

3*np.arange(1,5) + 4*np.arange(1,5)[:,None]

另一种方式是:

np.add.outer(4*np.arange(1,5),3*np.arange(1,5))

输出为:

 7   10   13   16
11   14   17   20
15   18   21   24
19   22   25   28