Создать список с плавающей точкой, где каждое число уступает номеру другого списка с плавающей точкой - PullRequest
1 голос
/ 27 марта 2019

Я использую следующий код для получения случайного списка чисел:

random_A = np.random.uniform(low=0, high=10, size=(50,))

Итак, я получаю список из 50 чисел

[0.35664866 4.76750599 2.05083389 9.53811567 5.36920383 8.91679955
 2.19965617 2.62523134 6.55224616 9.35766331 5.79652488 4.23194067
 2.72168337 5.31431884 8.3975979  9.29497168 5.42797236 5.64302212
 2.91821098 5.06305922 1.88212402 0.24593891 9.45021432 0.95423611
 9.36860165 2.46100709 3.80709829 1.08442665 3.28513088 9.75743916
 5.36187267 4.61001088 0.17912406 6.52406152 3.26927165 4.40187936
 6.79600876 8.10418648 1.06927133 5.3087785  1.85829928 2.20111922
 1.6910625  6.25714944 0.29338196 5.73195802 0.73971446 3.62506435
 9.0166149  3.90316395]

Что бы я хотел получить сейчасэто еще один список из 50 чисел с плавающей запятой, назовем его random_B, где каждое число с плавающей запятой этого списка ниже числа, сравниваемого в первом списке (random_A).Не могли бы вы помочь мне?

С уважением

1 Ответ

2 голосов
/ 27 марта 2019

Это один косвенный способ сделать это: сгенерировать первый массив, а затем использовать отдельный элемент этого массива в качестве верхнего предела для генерации второго массива снова, используя np.random.uniform

import numpy as np; np.random.seed(121)

random_A = np.random.uniform(low=0, high=10, size=(10,))
print (random_A)
# [1.11330828 2.10767575 2.32962488 1.51944557 8.30178138 4.07919415 5.557906   7.45523942 2.48499756 9.68659399]

random_B = np.array([np.random.uniform(0, i) for i in random_A])
print (random_B)
# [1.06063118 1.03244254 0.04262587 1.30308582 3.36170915 2.53919206 1.64164697 6.93030501 1.00795353 5.49521109]

EDIT

Еще лучше, как предложено @Severin в комментариях ниже

random_B = np.random.uniform(low=0, high=random_A, size=(10,))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...