c=np.array([ 0.  ,  0.2,  0.22,  0.89,  0.99])
rnd = np.random.uniform(low=0.00, high=1.00, size=12)


我想看看c中的元素比rnd中的12个随机数小得多。它必须为numpy并且不使用任何列表,以便更快。

输出将是一个由12个元素组成的数组,每个元素描述有多少个元素比rnd中的相应数量小。

最佳答案

您可以在将broadcastingc扩展到带有1D2D数组版本之后使用None/np.newaxis,以向量化的方式对所有元素进行比较,然后沿着带有.sum(0)的行求和,例如所以-

(c[:,None] < rnd).sum(0)


看来您也可以像这样使用高效的np.searchsorted-

np.searchsorted(c,rnd)

关于python - 大小不同的数组的numpy运算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35522087/

10-13 03:20