【发布时间】:2017-06-18 08:55:56
【问题描述】:
我有一张桌子,我需要使用 random.choice 进行概率计算, 例如(取自文档):
>>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
>>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'],
dtype='|S11')
如果我有 3D 数组而不是 aa_milne_arr,它不会让我继续。我需要为 3 个数组生成具有不同概率的随机事物,但它们内部的元素相同。例如,
>>> arr0 = ['red', 'green', 'blue']
>>> arr1 = ['light', 'wind', 'sky']
>>> arr3 = ['chicken', 'wolf', 'dog']
>>> p = [0.5, 0.1, 0.4]
我希望 arr0 (0.5)、arr1 (0.1) 和 arr3 (0.4) 中的元素具有相同的概率,因此我将看到来自 arr0 等的任何元素的概率为 0.5。
有什么优雅的方法吗?
【问题讨论】:
-
这看起来像
31D数组而不是3D数组。你能确认一下吗? -
是的,感谢您的更正。基本上,我最终想要的是 >>>np.random.choice([t, pos, n], 5, p=C1)
标签: python arrays numpy multidimensional-array