python - np.random.random 四舍五入到小数点后一位

pan*_*kes 0 python random numbers

尝试使用以下方法生成数字np.random.random

for portfolio in range(2437):
    weights = np.random.random(3)
    weights /= np.sum(weights)

    print(weights)
Run Code Online (Sandbox Code Playgroud)

它按预期工作:

[0.348674 0.329747 0.321579]
[0.215606 0.074008 0.710386]
[0.350316 0.589782 0.059901]
[0.639651 0.025353 0.334996]
[0.697505 0.171061 0.131434]
.
.
.
.
Run Code Online (Sandbox Code Playgroud)

但是,我如何更改数字,使每行限制为 1 位小数,例如:

[0.1 0.2 0.7]
[0.2 0.2 0.6]
[0.5 0.4 0.1]
.
.
.
.
Run Code Online (Sandbox Code Playgroud)

lol*_*pop 5

您可以使用

In [1]: weights.round(1)
Out[2]: array([0.4, 0.5, 0.2])
Run Code Online (Sandbox Code Playgroud)

的参数round是您想要的小数位数。它还接受负参数,这意味着四舍五入到大于 1 的 10 次方:

In [2]: np.array([123, 321, 332]).round(-1)
Out[2]: array([120, 320, 330])
Run Code Online (Sandbox Code Playgroud)