Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 生成最小和最大计数相等的数字_Python_Numpy_Itertools - Fatal编程技术网

Python 生成最小和最大计数相等的数字

Python 生成最小和最大计数相等的数字,python,numpy,itertools,Python,Numpy,Itertools,我有一个最小值和最大值,我想在它们之间生成一个数字列表,这样所有的数字都有相等的计数。有一个numpy函数或任何函数吗 示例:GenerateNums(开始=1,停止=5,nums=10) 预期输出:[1,1,2,2,3,3,4,4,5,5]即每个数字的计数几乎相等对于几乎相等的计数,您可以从均匀分布中采样。这是否: >>> import numpy as np >>> np.random.randint(low=1, high=6, size=10) arr

我有一个最小值和最大值,我想在它们之间生成一个数字列表,这样所有的数字都有相等的计数。有一个numpy函数或任何函数吗

示例:GenerateNums(开始=1,停止=5,nums=10)


预期输出:[1,1,2,2,3,3,4,4,5,5]即每个数字的计数几乎相等

对于几乎相等的计数,您可以从均匀分布中采样。这是否:

>>> import numpy as np
>>> np.random.randint(low=1, high=6, size=10)
array([4, 5, 5, 4, 5, 5, 2, 1, 4, 2])
要按排序顺序获取这些值,请执行以下操作:

>>> sorted(np.random.randint(low=1, high=6, size=10))
[1, 1, 1, 2, 3, 3, 3, 3, 5, 5]
这个过程就像掷骰子一样:)随着采样次数的增加,每个值的计数应该变得非常相似:

>>> from collections import Counter
>>> Counter(np.random.randint(low=1, high=6, size=10000))
Counter({1: 1978, 2: 1996, 3: 2034, 4: 1982, 5: 2010})
对于完全相等的计数:

>>> range(1,6) * 2
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
>>> sorted(range(1,6) * 2)
[1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

对于几乎相等的计数,可以从均匀分布中采样。这是否:

>>> import numpy as np
>>> np.random.randint(low=1, high=6, size=10)
array([4, 5, 5, 4, 5, 5, 2, 1, 4, 2])
要按排序顺序获取这些值,请执行以下操作:

>>> sorted(np.random.randint(low=1, high=6, size=10))
[1, 1, 1, 2, 3, 3, 3, 3, 5, 5]
这个过程就像掷骰子一样:)随着采样次数的增加,每个值的计数应该变得非常相似:

>>> from collections import Counter
>>> Counter(np.random.randint(low=1, high=6, size=10000))
Counter({1: 1978, 2: 1996, 3: 2034, 4: 1982, 5: 2010})
对于完全相等的计数:

>>> range(1,6) * 2
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
>>> sorted(range(1,6) * 2)
[1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
将“几乎相等”视为心脏——最常见和最不常见数字之间的差值最多为1。不保证哪一个数字是模式

def gen_nums(start, stop, nums):
    binsize = (1 + stop - start) * 1.0 / nums
    return map(lambda x: int(start + binsize * x), xrange(nums))

gen_nums(1, 5, 10)
[1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
将“几乎相等”视为心脏——最常见和最不常见数字之间的差值最多为1。不保证哪一个数字是模式

def gen_nums(start, stop, nums):
    binsize = (1 + stop - start) * 1.0 / nums
    return map(lambda x: int(start + binsize * x), xrange(nums))

gen_nums(1, 5, 10)
[1, 1, 2, 2, 3, 3, 4, 4, 5, 5]

有一个numpy函数:

In [3]: np.arange(1,6).repeat(2)
Out[3]: array([1, 1, 2, 2, 3, 3, 4, 4, 5, 5])

有一个numpy函数:

In [3]: np.arange(1,6).repeat(2)
Out[3]: array([1, 1, 2, 2, 3, 3, 4, 4, 5, 5])

是不是
nums
始终是
stop-start
+1`的倍数?@Bathsheba不是,nums只是我想要的数字。在这种情况下,从1和5中生成10个数字,这样生成的每个数字都有一个几乎相等的countWelcome返回堆栈溢出。看起来你想让我们为你写一些代码。通常在问题中包含代码。看,你所说的“每个数字的计数几乎相等”是什么意思?它们相等(各2个)。你如何确定平等?我的道歉:我完全误解了这个问题。出于某种原因,我以为你想要随机抽取数字。别理我。
nums
是否始终是
stop-start
+1`的倍数?@Bathsheba不,nums只是我想要的数字。在这种情况下,从1和5中生成10个数字,这样生成的每个数字都有一个几乎相等的countWelcome返回堆栈溢出。看起来你想让我们为你写一些代码。通常在问题中包含代码。看,你所说的“每个数字的计数几乎相等”是什么意思?它们相等(各2个)。你如何确定平等?我的道歉:我完全误解了这个问题。出于某种原因,我以为你想要随机抽取数字。别理我。我想OP想要订购输出。我想OP想要订购输出。非常感谢!这就是我要找的。不幸的是,我投了更高的票!非常感谢!这就是我要找的。不幸的是,我投了更高的票!