Python - генератор случайных образцов - PullRequest
0 голосов
/ 30 апреля 2018

Итак, мой первый вопрос о Stackoverflow. Пожалуйста, будьте добры :) Я очень плохо знаком с Python - но каждый день я стараюсь поправляться.

Я пытаюсь ответить на эти вопросы: «Создайте 1000 случайных выборок размером 50 из популяции. Вычислите среднее значение каждой из этих выборок (так что у вас должно быть 1000 средних) и поместите их в список norm_samples_50»

Полагаю, мне нужно использовать функцию randn, но я не могу точно догадаться, как сформировать синтаксис на основе приведенного выше вопроса. Я провел исследование и не могу найти ответ, который подходит. Буду признателен за любую помощь.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

A очень эффективное решение с использованием Numpy .

import numpy


sample_list = []

for i in range(50): # 50 times - we generate a 1000 of 0-1000random - 
    rand_list = numpy.random.randint(0,1000, 1000)
    # generates a list of 1000 elements with values 0-1000
    sample_list.append(sum(rand_list)/50) # sum all elements

Python однострочный

from numpy.random import randint


sample_list = [sum(randint(0,1000,1000))/50 for _ in range(50)]

Зачем использовать Numpy ? Это очень эффективно и очень точно (десятичное число). Эта библиотека сделана только для этих типов вычислений и чисел. Использование random из стандартной библиотеки хорошо, но не так быстро и надежно.

0 голосов
/ 30 апреля 2018

Это то, что вы хотели?

import random

# Creating a population replace with your own: 
population = [random.randint(0, 1000) for x in range(1000)]

# Creating the list to store all the means of each sample: 
means = []

for x in range(1000):
    # Creating a random sample of the population with size 50: 
    sample = random.sample(population,50)
    # Getting the sum of values in the sample then dividing by 50: 
    mean = sum(sample)/50
    # Adding this mean to the list of means
    means.append(mean)
...