在一个数组中找到相同的值,在另一个数组中找到等价的值对

2024-09-28 17:19:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个这样的数组 a = point1[:2]b = point2[:2] 长度相等。现在我想在a中找到重复的值,在b中找到它们各自的索引。一旦我有了这些指数,我想计算均方根。你知道吗

我尝试了以下方法:

b = point2[:2] 
idx = np.argsort(b)
sorted_z_predval = b[idx]
vals, idx_start, count = 
    np.unique(sorted_z_predval, return_counts=True, return_index=True)
filt = np.split(idx, idx_start[1:])
vals = vals[count >1]
b_uniq = filter(lambda x: x.size>1, filt)`

现在我得到了值重复多次的索引。我需要在a = point1[:2]中找到等价的成对索引 我对这一点感到震惊。你知道吗

任何帮助都将不胜感激。非常感谢。你知道吗


Tags: truereturncountnp数组指数startsorted
1条回答
网友
1楼 · 发布于 2024-09-28 17:19:53

numpy_indexed包(免责声明:我是它的作者)包含的功能将以高效和矢量化的方式执行这些类型的操作:

import numpy_indexed as npi
idx = npi.indices(b, npi.unique(a))

注意,您可以使用实例npi.indices(b, npi.unique(a), missing=-1),在idx中获得-1的值,其中在b中没有相应的条目

相关问题 更多 >