python - 仅在numpy中使用random.random获取-2和2之间的浮动随机数?
问题描述
我想得到一个介于 -2 和 +2 之间的随机浮点值。我能做的最好的是:
my_array = [-1, 1]
change_sign = []
for i in range(6):
change_sign.append(my_array[np.random.randint(low=0, high=2)] * 2)
print(change_sign)
results = np.random.random([6]) * change_sign
期望的输出:
[-1.14, -0.25, 0.33, 1.75, 1.99, -0.83]
但我觉得它可以更容易地完成。我不想使用其他 numpy 方法(如 uniform),只是 random 和 randint。
我怎么能那样做?
解决方案
np.random.random
返回 0.0 到 1.0 之间的随机浮点数
所以你可以乘以 4 并减去 2,所以范围是 -2.0 到 2.0
np.random.random(6)*4 - 2
array([ 1.41044053, -0.97521584, 1.55446329, -0.54314241, -1.55691897,
0.28276924])
推荐阅读
- python - 将接收 2 个数字作为输入的函数,它应该返回这 2 个数字的乘积
- java - 全屏无任务栏与java
- json - SharePoint 数据不显示在 Kendo Scheduler 中
- zebra-printers - 使用 Zebra 170Xi4 的 Generic/Text only 驱动程序,如何发送命令 ZPL
- react-native - 带有 ViewOverflow 的 OnPress 按钮在 android 上不起作用
- python - Python/Pip 打包;如何将构建的文件移动到安装目录
- swagger-ui - 动态更改服务器 url
- google-bigquery - 如何在 BigQuery 中备份数据集?
- r - ggplot2中的渐变填充
- python - Paramiko 没有正确返回 grep