【发布时间】:2021-02-17 15:21:54
【问题描述】:
我正在尝试找到一种方法从 np.random.choise 获取值数组,使用值矩阵和概率之一,而不使用循环。
想象一下我有这样的东西
vals= array([[ 0. , 1.22222222, 2.44444444, 3.66666667, 4.88888889,
6.11111111, 7.33333333, 8.55555556, 9.77777778, 11. ],
[ 3. , 8.22222222, 13.44444444, 18.66666667, 23.88888889,
29.11111111, 34.33333333, 39.55555556, 44.77777778, 50. ]])
probs= array([[0.01056171, 0.15521083, 0.07796945, 0.09986356, 0.14516427,
0.12496125, 0.00091384, 0.19739258, 0.00088116, 0.18708136],
[0.01220221, 0.17791623, 0.13682813, 0.05679157, 0.16599396,
0.09769565, 0.09365478, 0.15176203, 0.0965629 , 0.01059253]])
我怎样才能得到一个等价于这个的数组
[np.random.choice(vals[i],p=probs[i]) for i in range(len(probs))]
out[1]:
[6.111111111111112, 23.88888888888889]
不使用 for 循环??
我希望 np.random.choice 按行广播矩阵,但我收到错误“a must be 1-dimensional”。
【问题讨论】:
-
您只是想要那个,还是根据阅读文档而认真期待它?
标签: python numpy loops for-loop random