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中的相应数量小。
最佳答案
您可以在将broadcasting
从c
扩展到带有1D
的2D
数组版本之后使用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/