Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.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 您的代码生成的顺序不是随机的(不过,在这种情况下可能并不重要)。你可能想@J.F.Sebastian(和Rob),O(n*k)问题在于为什么我说索引应该是一个目录,而不是一个列表。好的一点:在许多情况下,基于频率的样本就足够了。我甚至可以按频率进行过采样,_Python_Python 3.x_Random - Fatal编程技术网

Python 您的代码生成的顺序不是随机的(不过,在这种情况下可能并不重要)。你可能想@J.F.Sebastian(和Rob),O(n*k)问题在于为什么我说索引应该是一个目录,而不是一个列表。好的一点:在许多情况下,基于频率的样本就足够了。我甚至可以按频率进行过采样,

Python 您的代码生成的顺序不是随机的(不过,在这种情况下可能并不重要)。你可能想@J.F.Sebastian(和Rob),O(n*k)问题在于为什么我说索引应该是一个目录,而不是一个列表。好的一点:在许多情况下,基于频率的样本就足够了。我甚至可以按频率进行过采样,,python,python-3.x,random,Python,Python 3.x,Random,您的代码生成的顺序不是随机的(不过,在这种情况下可能并不重要)。你可能想@J.F.Sebastian(和Rob),O(n*k)问题在于为什么我说索引应该是一个目录,而不是一个列表。好的一点:在许多情况下,基于频率的样本就足够了。我甚至可以按频率进行过采样,然后使用random.sample()将其缩小到所需的大小。您能澄清一下为什么预期为正态分布吗?我可以看到你在计算频率,但统计数据不是我的强项。。。另外,如果你期待一个高斯分布,为什么你没有得到一个(或者为什么“还没有”)?高斯分布是一个“普通


您的代码生成的顺序不是随机的(不过,在这种情况下可能并不重要)。你可能想@J.F.Sebastian(和Rob),
O(n*k)
问题在于为什么我说
索引应该是一个
目录,而不是一个列表。好的一点:在许多情况下,基于频率的样本就足够了。我甚至可以按频率进行过采样,然后使用
random.sample()
将其缩小到所需的大小。您能澄清一下为什么预期为正态分布吗?我可以看到你在计算频率,但统计数据不是我的强项。。。另外,如果你期待一个高斯分布,为什么你没有得到一个(或者为什么“还没有”)?高斯分布是一个“普通”随机分布的极限,瞄准“某一点”。我希望所有的数字平均都以相同的频率出现,但这是不可能实现的,除非有随机的机会。将要发生的是,这些值将围绕预期结果分组;如果我有无限多的样本,这个“非预期的”分布将描述一个高斯分布。如果我不能更好地解释这一点,我很抱歉。你的解释很清楚,尽管你没有说你如何解释你所看到的偏差。但无论如何,我不确定你的假设是否正确:频率是离散的,不是连续的,不能低于零,所以不可能有真正的高斯分布。对于任何特定的值,它的期望频率都是泊松分布,由于泊松和也是泊松分布,我认为这就是当你对所有输入值求和时得到的结果。但是统计不是我的强项,所以谁知道呢…谢谢你的建议,但这并没有产生一个具体的样本大小。在很多情况下,这是一个不错的选择,但这不是问题所在。
>>> import itertools, random
>>> random.sample(iter("abcd"), 2)
...
TypeError: Population must be a sequence or set.  For dicts, use list(d).
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    random.sample(iter("abcd"), 2)
  File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/random.py", line 321, in sample
    n = len(population)
TypeError: object of type 'iterator' has no len()
import random

def sample(it, length, k):
    indices = random.sample(xrange(length), k)
    result = [None]*k
    for index, datum in enumerate(it):
        if index in indices:
            result[indices.index(index)] = datum
    return result

print sample(iter("abcd"), 4, 2)
import random

def R(it, k):
    '''https://en.wikipedia.org/wiki/Reservoir_sampling#Algorithm_R'''
    it = iter(it)
    result = []
    for i, datum in enumerate(it):
        if i < k:
            result.append(datum)
        else:
            j = random.randint(0, i-1)
            if j < k:
                result[j] = datum
    return result

print R(iter("abcd"), 2)
def random_wrap(iterator, threshold):
    for item in iterator:
        if random.random() < threshold:
            yield item
>>> list(random_wrap(iter('abcdefghijklmnopqrstuvwxyz'), 0.25))
['f', 'h', 'i', 'r', 'w', 'x']

>>> list(random_wrap(iter('abcdefghijklmnopqrstuvwxyz'), 0.25))
['j', 'r', 's', 'u', 'x']

>>> list(random_wrap(iter('abcdefghijklmnopqrstuvwxyz'), 0.25))
['c', 'e', 'h', 'n', 'o', 'r', 'z']

>>> list(random_wrap(iter('abcdefghijklmnopqrstuvwxyz'), 0.25))
['b', 'c', 'e', 'h', 'j', 'p', 'r', 's', 'u', 'v', 'x']
import random

def reservoir(iterator, size):
    n = size
    R = iterator[0:n]
    for e in iterator:
        j = random.randint(0, n-1)
        n = n + 1
        if (j < size):
                R[j] = e
    return R
print reservoir(range(1, 1000), 3)
[656, 774, 828]
#                get first column and clean it
python file.py | cut -f 1 -d " " | tr -cd "0-9\n" \
    | sort | uniq -c | cut -b1-8 | tr -cd "0-9\n" | sort | uniq -c
itertools.compress(long_sequence, (random.randint(0, 100) < 10 for x in itertools.repeat(1)))
import itertools
import random

def reservoir_sample(iterable, k):
    it = iter(iterable)
    if not (k > 0):
        raise ValueError("sample size must be positive")

    sample = list(itertools.islice(it, k)) # fill the reservoir
    random.shuffle(sample) # if number of items less then *k* then
                           #   return all items in random order.
    for i, item in enumerate(it, start=k+1):
        j = random.randrange(i) # random [0..i)
        if j < k:
            sample[j] = item # replace item with gradually decreasing probability
    return sample
>>> reservoir_sample(iter('abcdefghijklmnopqrstuvwxyz'), 5)
['w', 'i', 't', 'b', 'e']