【发布时间】:2018-07-12 15:55:10
【问题描述】:
我需要从一个数组中采样一堆点对。我希望每对包含两个 DISTINCT 点,但这些点可能在不同对之间重复。
例如,如果我的数组是X=np.array([1,1,2,3]),那么:
>>> sample_pairs(X, n=4)
... [[1,1], [2,3], [1,2], [1,3]] # this is fine
>>> sample_pairs(X, n=4)
... [[1,1], [2,2], [3,3], [1,3]] # this is not okay
有没有一种好方法可以将其作为矢量化操作来完成?
【问题讨论】:
-
实际用例是我试图引导成对距离的分布,而不计算所有成对距离,即
O(n^2) -
向我们展示您打算如何使用这些配对。甚至可能是没有修剪的样本计算。通常在
numpy中,在一个向量化操作中完成所有计算会更快,而不是花费额外的时间来跳过冗余计算。 -
我打算对一堆随机对进行采样,计算这些对之间的距离,然后返回结果距离列表的平均值和标准差。请注意,我可以计算成对距离,但我希望我能在线性时间内得到成对距离的均值和标准差的合理近似值。
-
这个问题的目标是从
X中随机选择点对 -
用替换来计算整个样本似乎更简单,然后如果你不想要那些相同的点对就扔掉。