gpt4 book ai didi

python - 根据另一个数组对齐 numpy 数组

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

我有一个包含任意整数的 numpy 数组 a,我还有另一个数组 b,(它始终是 a 的子集, 但 b 中的数字顺序与 a 不同。我想将 b 的元素按照它在 中出现的顺序对齐>一个

a = np.array([4,2,6,5,8,7,10,12]);
b = np.array([10,6,2,12]),

我希望 b 对齐为 [2,6,10,12]。我怎样才能在 numpy 中有效地做到这一点?

最佳答案

方法 #1: 一种使用 np.in1d 的方法,假设 a -

中没有重复项
a[np.in1d(a,b)]

更好的示例案例,其中 a 中的元素受到干扰,因此它不会针对常见元素进行排序以呈现各种案例 -

In [103]: a
Out[103]: array([ 4, 12, 6, 5, 8, 7, 10, 2])

In [104]: b
Out[104]: array([10, 6, 2, 12])

In [105]: a[np.in1d(a,b)]
Out[105]: array([12, 6, 10, 2])

方法 #2: 一种使用 np.searchsorted 的方法-

sidx = a.argsort()
out = a[np.sort(sidx[np.searchsorted(a,b,sorter=sidx)])]

关于python - 根据另一个数组对齐 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41923906/

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