将2D和1D阵列相乘以获得3D阵列

时间:2018-04-28 11:53:26

标签: python arrays numpy

我有一个概率的二维数组A和正态分布的一维数组B。我想将A中的每个概率乘以B,这样得到的数组C现在是3维的,第三个轴现在是原始1D数组的长度{{ 1}}。

执行此操作的最pythonic方法是什么?

1 个答案:

答案 0 :(得分:1)

>>> A = np.array([[0.2, 0.3],
                [0.1, 0.4]])

>>> B = np.array([1,2,3])

>>> C = A[...,None] * B
array([[[0.2, 0.4, 0.6],
        [0.3, 0.6, 0.9]],

       [[0.1, 0.2, 0.3],
        [0.4, 0.8, 1.2]]])

>>> C.shape
(2, 2, 3)