Создание поддельных данных в Python

1

Я пытаюсь создать функцию, которая создает поддельные данные для использования в отдельном анализе. Вот требования к функции.

Проблема 1

В этой проблеме вы создадите поддельные данные, используя numpy. В ячейке ниже функции create_data принимает 2 параметра "n" и "rand_gen".

  • Параметр "rand_gen" является генератором псевдослучайных чисел. Мы используем генератор псевдослучайных чисел для получения тех же результатов.
  • Используйте функцию numpy.random.randn псевдослучайного генератора для создания массива numpy длины n и возврата массива.

Вот функция, которую я создал.

def create_data(n, rand_gen):
'''
Creates a numpy array with n samples from the standard normal distribution

Parameters
-----------
n : integer for the number of samples to create
rand_gen : pseudo-random number generator from numpy  

Returns
-------
numpy array from the standard normal distribution of size n
'''

numpy_array = np.random.randn(n)
return numpy_array

Вот первый тест, который я выполняю для своей функции.

create_data(10, np.random.RandomState(seed=23))

Мне нужен вывод для этого точного массива.

[0.66698806, 0.02581308, -0.77761941, 0.94863382, 0.70167179,
                       -1.05108156, -0.36754812, -1.13745969, -1.32214752,  1.77225828]

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

  • 2
    Связанный? stackoverflow.com/questions/22994423/...
  • 4
    Вы вообще не используете rand_gen в своей функции? Похоже, вы создаете затравочный генератор, а затем просто по умолчанию возвращаетесь к стандартному модулю ГСЧ
Показать ещё 4 комментария
Теги:
numpy
random

2 ответа

1

Определить numpy_array = rand_gen.randn(n)

0

Я думаю, что вопрос, который вы задаете, касается псевдослучайных чисел и воспроизводимых рандомов.

Реальные случайные числа производятся с непредсказуемыми данными реального слова, такими как просмотр лавовых ламп, в то время как псевдослучайные числа создают длинную последовательность чисел, которая кажется случайной.

Основным алгоритмом является:

  1. получить семя или большое количество, может быть, с текущего времени.
  2. принять участие семени в качестве случайного числа
  3. совершают неописуемые математические увечья в семя, связанные с битовыми сдвигами, показателями и умножениями.
  4. используйте вывод этих вычислений в качестве нового семени, перейдите к шагу 2.

Фокус в том, что указание одного и того же семени означает, что вы получаете одну и ту же последовательность каждый раз. Вы можете установить это с помощью numpy.random.seed() а затем получить одну и ту же последовательность каждый раз.

Надеюсь, это вопрос, который вы задавали.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню