gpt4 book ai didi

python - np.tile 重复一维数组

转载 作者:行者123 更新时间:2023-12-01 03:54:16 25 4
gpt4 key购买 nike

我有一个 ndarray,A,我想将此 ndarray 元素与另一个一维数组 b 相乘,其中我假设对于某些 iA.shape[i] = len(b)/。我的应用程序需要这种通用性。

我可以使用 np.tile 执行此操作,如下所示:

A = np.random.rand(2,3,5,9)
b = np.random.rand(5)
i = 2
b_shape = np.ones(len(A.shape), dtype=np.int)
b_shape[i] = len(b)
b_reps = list(A.shape)
b_reps[i] = 1
B = np.tile(b.reshape(b_shape), b_reps)

# Here B.shape = A.shape and
# B[i,j,:,k] = b for all i,j,k

这让我觉得丑陋。有一个更好的方法吗?

最佳答案

对于这个特定的示例,以下代码可以解决问题:

result = A*b[:, np.newaxis]

对于任何 i 值,请尝试以下操作:

A2, B = np.broadcast_arrays(A, b)
result = A2*B

关于python - np.tile 重复一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37767110/

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