如何用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