gpt4 book ai didi

python - 如何向量化这两个嵌套的 for 循环?

转载 作者:行者123 更新时间:2023-12-04 14:49:02 25 4
gpt4 key购买 nike

我有以下代码:

import numpy as np

my_array = np.zeros((42, 123, 2021))

assert another_array.shape == (42, 123)

for i in range(42):
for j in range(123):
my_array[i, j, another_array[i, j]] = 1

假设 another_array 的值保持在正确的范围内(即 another_array 的值是 0 到 2020 之间的整数)。

我想摆脱这两个 for 循环。有没有办法矢量化这样的东西?

最佳答案

尝试:

my_array = np.zeros((42, 123, 2021))
# assert another_array.shape == (42, 123)
my_array[ np.arange(42)[:,None], np.arange(123), another_array] = 1

想法是用一对广播到 (42,123) 的范围替换 i,j 以匹配第 3 轴索引数组。

关于python - 如何向量化这两个嵌套的 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69363563/

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