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/