gpt4 book ai didi

python - 如何用替换列表替换二维 numpy 数组中的一行?

转载 作者:行者123 更新时间:2023-12-01 05:22:23 26 4
gpt4 key购买 nike

这是我正在处理的一个更大问题的非常简化的示例。如何替换二维 numpy 数组中的多行?例如,我有一个数组...

main_list = array( [[ 0.  0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]])

我有一个索引列表...

indexes = array([3, 6, 2])

我有一个替换列表,其长度始终与索引列表相同。

substitutions = array( [[ 2.4  5.2]
[ 10.1 1.3]
[ 5.6 9.5]])

我想要...

main_list = array( [[ 0.  0.]
[ 0. 0.]
[ 5.6 9.5]
[ 2.4 5.2]
[ 0. 0.]
[ 0. 0.]
[ 10.1 1.3]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]])

现在我正在做...

for i, ind in enumerate(indexes):
main_list[ind] = substitutions[i]

请记住,这是一个简单的示例,在我正在做的生产版本中,所有这些列表的长度都会很大。有没有更快的方法来进行这些替换?谢谢。

最佳答案

main_list[indexes,:] = substitutions

我在计时方面的尝试表明这比您发布的速度快 3 倍

In [51]: %%timeit
for i, ind in enumerate(indexes):
main_list[ind] = substitutions[i]
....:
100000 loops, best of 3: 6.83 us per loop

In [52]: %timeit main_list[indexes,:] = substitutions
100000 loops, best of 3: 2.27 us per loop

关于python - 如何用替换列表替换二维 numpy 数组中的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22053293/

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