gpt4 book ai didi

python - 使用numpy时如何忽略索引数组中的越界值?

转载 作者:行者123 更新时间:2023-12-05 02:52:29 24 4
gpt4 key购买 nike

我需要使用索引数组将一个数组分配给另一个数组。但是有些值是越界的...

a = np.array([0, 1, 2, 3, 4])
b = np.array([10, 11, 12, 13, 14])
indexes = np.array([0, 2, 3, 5, 6])

ab 大小相同。如果我使用 a[indexes] = b,它会抛出一个 IndexError。我希望它忽略越界值 5 和 6,这样 a 就会变成 [10, 1, 11, 12, 4]

我试着做 indexes[indexes > b.size()] = 0但这会弄乱索引 0 处的值。如何解决?

编辑

索引不一定是有序的。例如:

indexes = np.array([2, 3, 0, 5, 6])

a 应该变成 np.array([12, 1, 10, 11, 4])

最佳答案

您可以过滤掉那些无效的索引:

indexes = indexes[indexes < len(a)]

a[indexes] = b[indexes]

输出:

array([10,  1, 12, 13,  4])

关于python - 使用numpy时如何忽略索引数组中的越界值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62575405/

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