numpy:矢量化“锯齿状”数组中的随机数生成

时间:2018-08-19 12:01:54

标签: python arrays numpy

我有两个参差不齐的数组作为输入:第一个是值数组,第二个是对应于前一个数组的值的概率数组。对于每行值,我想根据相应的概率数组绘制一个值。

下面是非矢量化版本的示例代码:

values = [[1, 2, 4], [19, 8], [7, 6, 1, 2], [5, 0]]
probabilities = [[0.1, 0.1, 0.8], [0.5, 0.5], [1, 0, 0, 0], [0.25, 0.75]]

output = [np.random.choice(values, p=probs) for values, probs in zip(values, probabilities)]
print(output)

输出:

[4, 19, 7, 0]

我尝试对每对值和概率使用np.vectorize,但是它没有提供加速。是否可以通过使用np.vectorize来矢量化这种类型的随机选择?

0 个答案:

没有答案