python - 将 2D 和 1D 数组相乘以获得 3D 数组

标签 python arrays numpy

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

执行此操作最Pythonic的方式是什么?

最佳答案

>>> 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)

关于python - 将 2D 和 1D 数组相乘以获得 3D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50076262/

相关文章:

python - 获取数据框 pandas 的索引值

python - 如何在 Networkx Python 中添加带有列表作为标签的边

python - 使用缺口形状时 matplotlibs boxplot 的奇怪行为

java - 首先按变量对数组排序,然后按降序排序

javascript - 返回 div 列表的长度,但其子级没有特定属性值除外

python - 如何在 Python 的二维数组中查找值的索引?

JavaScript:每次 3 秒后显示一个数组项

python - numpy 直方图数组

numpy - 轴0超出维度0数组的范围

python - 通过索引进行条件性 numpy 数组修改