gpt4 book ai didi

python - numpy中数组之间的映射

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

我在一个数组中有一些数据,我想映射到另一个数组,给定一个对应数组:

  • originaldata 是一个 numpy 二维数组,
  • targetdata 是另一个 numpy 二维数组,
  • mapping 是一个在位置之间映射的数组,所以 mapping[x,y] 给了我一对 targetdata[x 的数据所在的坐标,y] 来自 originaldata.

到目前为止,我做了这样的事情:

for (x,y) in ALLTHEPOINTS:
targetdata[x,y]=originaldata[mapping[x,y][0],mapping[x,y][1]]

...我怀疑这是非常低效的。

有什么方法可以对其进行矢量化吗?或者是否有解决此类操作的任何 numpy 函数?

最佳答案

这就是花式索引的作用:

targetdata = originaldata[mapping[..., 0], mapping[..., 1]]

举个简单的例子:

>>> original_data = np.arange(6).reshape(2, 3)
>>> original_data
array([[0, 1, 2],
[3, 4, 5]])
>>> mapping = np.array([[[1,0], [1, 1], [1, 2]], # swap rows and reverse
... [[0, 2], [0, 1], [0, 0]]]) # the second one
>>> original_data[mapping[..., 0], mapping[..., 1]]
array([[3, 4, 5],
[2, 1, 0]])

关于python - numpy中数组之间的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19647447/

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