gpt4 book ai didi

python - 根据给定索引交换两个列表的值

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:15 24 4
gpt4 key购买 nike

我有一个列表,它由两个 numpy 数组组成,第一个告诉值的索引,第二个包含所属值本身。它看起来有点像这样:

x_glob = [[0, 2], [85, 30]]

函数现在正在接收以下输入:

x = [-10, 0, 77, 54]

我的目标是根据 x_glob 中给定的索引数组,将 x 的值与 x_glob 中的值进行交换。此示例应产生如下结果:

x_new = [85, 0, 30, 54]

我确实有一个使用循环的解决方案。但我很确定 python 中有一种方法可以更高效、更优雅地解决这个问题。

谢谢!

最佳答案

NumPy arrays may be indexed with other arrays ,这使得这个替换变得微不足道。

您需要做的就是使用 x_glob[0] 索引您的第二个数组,然后分配 x_glob[1]

x[x_glob[0]] = x_glob[1]

要了解这是如何工作的,只需查看索引的结果:

>>> x[x_glob[0]]
array([-10, 77])

结果是一个包含我们需要替换的两个值的数组,然后我们将其替换为另一个 numpy 数组,x_glob[1],以实现所需的结果。


>>> x_glob = np.array([[0, 2], [85, 30]])
>>> x = np.array([-10, 0, 77, 54])
>>> x[x_glob[0]] = x_glob[1]
>>> x
array([85, 0, 30, 54])

关于python - 根据给定索引交换两个列表的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51134734/

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