Numpy操作不同大小的数组

时间:2016-02-20 10:41:11

标签: python arrays performance numpy

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中相应的数字。

1 个答案:

答案 0 :(得分:3)

c1D扩展到2D数组版本broadcasting后,您可以使用None/np.newaxis,以便以矢量化方式对所有元素进行比较,然后用.sum(0)对行进行求和以进行计数,就像这样 -

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

似乎你也可以使用高效的np.searchsorted -

np.searchsorted(c,rnd)