У меня есть массив со значениями
data = [1,2,3,4,5]
Я хочу сгенерировать выборку из 20000 записей, чтобы она соответствовала трендучисло вместе со временем, так что изначально существует 5 доступных, и оно уменьшается со временем до 1.
Я пытался достичь этого с помощью:
def random_iti(start, end, starting_prob = 1.0, ending_prob = 0.1, num_samples = 20000):
start = start
end = end
# Get days between `start` and `end`
num = (end - start)
linear_probabilities = expon.cdf(np.linspace(starting_prob, ending_prob, num), scale = 0.3)
# normalize probabilities so they add up to 1
linear_probabilities /= np.sum(linear_probabilities)
rand_days = np.random.choice(num, size = num_samples, replace = True,
p = linear_probabilities)
rand = [(start + int(rand_days))]
# return list of date strings
return rand
num_iti = random_iti(1, 5, starting_prob = 1.0, ending_prob = 0.1, num_samples=sample_count)
Однако выполнение этого кода дает мне:
Ошибка типа: в скаляры Python могут быть преобразованы только массивы размера 1
Может кто-нибудь посоветовать, что здесь не так и что нужно сделать, чтобы добиться того же.