python - 如何生成总和=1的随机值列表
问题描述
如何生成类似于以下的随机值列表:
X Y
0.2 0.8
0.1 0.9
0.6 0.4
0.3 0.7
x 和 y 的总和应该是 = 1
解决方案
熊猫
尝试使用 pandas 数据框sum
功能:
import pandas as pd
import numpy as np
import random
l = random.sample(list(np.arange(0.0,1.0,0.1)),4)
df = pd.DataFrame({'X': l,
'Y': ''})
df['Y'] = 1-df['X']
print(df.sum(axis=1))
输出:
0 1.0
1 1.0
2 1.0
3 1.0
dtype: float64
普通蟒蛇
只需简单地执行以下代码:
l = random.sample(list(np.arange(0.0,1.0,0.1)),4)
s = '\n'.join([str(x)+' '+str(y) for x,y in list(zip(l,[str(1-i) for i in l]))])
for i in s.splitlines():
print(sum([float(i) for i in i.split()]))
输出:
1.0
1.0
1.0
1.0
推荐阅读
- r - R Titanic 数据集练习——试图找到幸存的比率
- javascript - 使用 jQuery 和 AJAX 将 PHP 变量打印到控制台
- python - python:numpy:就像列表一样,我可以更改项目的值的类型
- python-3.x - Python Postgres 包:psycopg2 copy_from vs copy_expert
- go - 选择/查找模型时省略列
- emacs - 在emacs中移动窗口
- php - .htaccesss 从 URL 中删除文件扩展名和变量
- powershell - Powershell zip/move 的问题
- python - Python/SQLALCHEMY:不确定如何使用“filter_by”
- go - 将 Oauth2 实现为中间件