Python / Numpy从已知频率创建数据集

时间:2015-06-11 05:40:32

标签: python numpy

是否有任何功能可以从已知频率创建numpy数组或其他类似的数据结构?我正在查看一个数据集,其中有5个硬币的频率被抛出1000次以下。

头数 -

0 - 38, 1 - 144, 2 - 342, 3 - 287, 4 - 164, 5 - 25,

使用列表推导等是相对简单的

[0 for i in range(38)] ...

创建其中的每一个然后将它们全部合并以创建原始数据集对于上述数据来说相对容易。

我想知道是否存在这样做的快捷方式,如果这需要更大的数字,即1000万投掷或更多硬币说1万并且需要手动输入。这假设我们已经以表格形式提供了数据。

1 个答案:

答案 0 :(得分:0)

不确定您期望的快捷方式。但是在普通python中实现它的一种方法是:

div.caption

要用numpy来做,你可以这样做:

freq = {0:38, 1:144, 2:342, 3:287, 4:164, 5:25}
[h for h, n in sorted(freq.items()) for _ in range(n)]

或者没有任何理解的最快方式:

np.hstack([np.full(n, h) for h, n in sorted(freq.items())])