Fast way to select n items (drawn from a Poisson distribution) for each element in array x

后端 未结 2 2030
野性不改
野性不改 2021-01-18 23:12

I am having some trouble with solving a problem I encountered.

I have an array with prices:

>>> x = np.random.randint(10, size=10)
array([6,         


        
2条回答
  •  说谎
    说谎 (楼主)
    2021-01-18 23:37

    You could use np.repeat:

    In [43]: x = np.array([6, 1, 7, 6, 9, 0, 8, 2, 1, 8])
    
    In [44]: arrivals = np.array([4, 0, 1, 1, 3, 2, 1, 3, 2, 1])
    
    In [45]: np.repeat(x, arrivals)
    Out[45]: array([6, 6, 6, 6, 7, 6, 9, 9, 9, 0, 0, 8, 2, 2, 2, 1, 1, 8])
    

    but note that for certain calculations, it might be possible to avoid having to form this intermediate array. See for example, scipy.stats.binned_statistic.

提交回复
热议问题