У меня есть CSV около 400 000 «забитых» строк, где я обновляю счет, чтобы быть линейным распределением от 1 до 10, округленным до 5 десятичных знаков. (Итак, сверху, столбец [0] равен 10, 9.999997, 9.999995 и т. Д.)Случайное распределение, чтобы соответствовать среднему питону
Я хочу создать сценарий, чтобы вытащить X строк средней оценки Y из списка.
Мое ожидание - это что-то вроде кривой колокола. Это может быть неудобно/невозможно при низких или высоких значениях X и/или Y, но если я выдержу 10 000 строк среднего балла 7, должно быть «немного» при очень низких баллах и достаточно очков, чтобы сгладить распределение.
Моя первая мысль состояла в том, чтобы загрузить значения строки [0] в список чисел, заставить приближенное число к номеру к цели 7, заполняя числа в другой список, а затем используя этот список для вернитесь через CSV и если строка [0] находится в списке output_list, out_writer ([row]). Но моя догадка поэтапная математика, вероятно, очень неэффективна, и я не знаю, какие библиотеки могут мне помочь.
ввода выглядит следующим образом:
Score Name
10.0 foo
9.99997 bar
9.99995 stuff
9.99992 thing
9.9999 other
т.д.
Я хочу, чтобы иметь возможность вводить большой переменной X и Y счет и выводить CSV из X строк из входного файла таким образом, что их среднее значение равно Y. Конечно, нетривиально (в противном случае я мог бы просто получить строки X/2 по обе стороны от оценки цели из входного файла!) - предпочтительным было бы более широкое распространение.
В идеале я бы нашел решение, позволяющее использовать асимметричные распределения. Например, если бы я хотел, чтобы 100 чисел составляли в среднем 9,0, я ожидал бы около двадцати чисел выше 9,0, чтобы встретить 1,0. Конечно, это может стать беспорядочным, но я также ожидаю, что 1.0 будет 1/20 по вероятности.
Можете ли вы создать небольшой образец ввода и пример вывода для этого упражнения? Я предполагаю, что есть какой-то способ просто «магии» этого в numpy, но я вообще не знаком с ним. –
Возможно, что-то вроде ['numpy.random.normal'] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html). Нарисуйте произвольные выборки и возьмите ближайший из своего набора данных. –
Это похоже на то, что я хочу. У меня нет минимума и макс - я беспокоюсь, что он всегда будет рисовать симметричные кривые. Так что, если я хочу в среднем 7, я буду отрывать все до 4? (Стандартное отклонение (10-X)/3, заканчивающееся на + -3,0 за 4 - 10?) Как мне адаптировать numpy.random.normal к моим потребностям? – Xodarap777