生成浮点数列表,其中每个数字都不如另一个浮点数列表的数量

问题描述 投票:1回答:1

我使用以下代码获取浮动的随机列表:

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)。请你帮助我好吗?

问候

python list numpy random
1个回答
2
投票

这是一种间接的方法:生成第一个数组,然后使用该数组的单个元素作为使用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]

编辑

甚至更好,如@Severin在下面的评论中所建议的那样

random_B = np.random.uniform(low=0, high=random_A, size=(10,))
© www.soinside.com 2019 - 2024. All rights reserved.