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中相应的数字。
答案 0 :(得分:3)
将c
从1D
扩展到2D
数组版本broadcasting
后,您可以使用None/np.newaxis
,以便以矢量化方式对所有元素进行比较,然后用.sum(0)
对行进行求和以进行计数,就像这样 -
(c[:,None] < rnd).sum(0)
似乎你也可以使用高效的np.searchsorted
-
np.searchsorted(c,rnd)