gpt4 book ai didi

python - 将 Numpy 3D 数组乘以 1D 数组

转载 作者:行者123 更新时间:2023-12-04 12:04:09 24 4
gpt4 key购买 nike

我试图将一个 3D 数组乘以一个 1D 数组,这样沿着第 3 个(深度:d)维度的每个 2D 数组的计算方式如下:
1D_array[d]*2D_array
我最终得到一个看起来像这样的数组,比如:

[[
[1,1]
[1,1]]
[
[2,2]
[2,2]]
[
[3,3]
[3,3]]]

这将是将 np.ones((3,2,2)) 与 [1,2,3] 正确相乘的结果。

我已经尝试了一段时间,无论我似乎做什么,我都无法得到这个结果,只是主题的变化。我该如何正确地执行此操作?

谢谢你的帮助。

最佳答案

让我们假设 b=np.ones((3,2,2))a=np.array([1,2,3]) .我真的很喜欢@Alok 的答案,它使用了简单的 a[:, None, None] * b这肯定适用于您的问题。我不喜欢这个公式的地方在于它非常具体。我的意思是它只能用于 3 维数组,这在我的问题中不是真的,其中 b 可以是一维或 3D 数组,其长度与 axis 0 完全相同。 .因此,我找到了一种方法来适应我的问题:

broad_a = np.broadcast_to(a, b.T.shape).T
result = broad_a * b
print(result)
[[
[1,1]
[1,1]]
[
[2,2]
[2,2]]
[
[3,3]
[3,3]]]
还为您的案例提供预期的结果。

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com