【问题标题】:Create array of lists with random values [duplicate]创建具有随机值的列表数组[重复]
【发布时间】:2019-02-21 16:32:59
【问题描述】:

我正在尝试创建示例数据,如下面的 smpl_dt 数组示例。我想创建一个数组,其中每个元素都是 0.0001 到 1 之间的 8 个随机数的列表。

我可以使用以下方法轻松创建 0 到 1 之间的 8 个随机数列表:

Code:

[rd.uniform(0.0001,1) for _ in range(8)]

但是我在创建数组时遇到了问题。非常感谢任何提示。

样本数据:

print(smpl_dt[0:5])

array([[0.0001, 0.0001, 0.3   , 0.0001, 0.2   , 0.0001, 0.2   , 0.3   ],
       [0.1   , 0.1   , 0.1   , 0.2   , 0.2   , 0.2   , 0.1   , 0.0001],
       [0.1   , 0.0001, 0.2   , 0.0001, 0.1   , 0.2   , 0.0001, 0.4   ],
       [0.3   , 0.0001, 0.0001, 0.2   , 0.1   , 0.2   , 0.2   , 0.0001],
       [0.2   , 0.3   , 0.1   , 0.0001, 0.2   , 0.1   , 0.1   , 0.0001]])

【问题讨论】:

    标签: python python-3.x list numpy numpy-ndarray


    【解决方案1】:

    使用size 参数。例如,

    >>> arr = np.random.uniform(0.0001, 1, size=[4,8])
    
    array([[0.67011692, 0.06662612, 0.13316262, 0.80666553, 0.88362879, 0.21492319, 0.22063457, 0.90038505],
           [0.87799324, 0.6486384 , 0.27700837, 0.54103365, 0.52688455, 0.93159481, 0.09245974, 0.54593494],
           [0.4680346 , 0.17802325, 0.21506341, 0.95917602, 0.20481784, 0.53165515, 0.1657028 , 0.39784648],
           [0.38951888, 0.03457946, 0.90076103, 0.13769038, 0.303991  , 0.57457931, 0.64236861, 0.85915101]])
    

    【讨论】:

    • 谢谢你,这完全成功了!
    【解决方案2】:

    不使用 numpy:

    import random as rd
    
    arr = [[rd.uniform(0.0001,1) for _ in range(8)] for _ in range(arrlen)]
    

    【讨论】:

    • 我相信 rd 是对 numpy.random 的引用,所以你仍然在使用 numpy :)
    • @Tim 谢谢,我最初尝试做类似的事情,但我现在从你的帖子中看到,我需要先将其转换为列表列表,然后将结果转换为数组.
    • @RafaelC 可能是,但从最初的问题中并不清楚。将内置 random 模块导入为 rd 也适用于此代码。
    • @Tim 只是 OP 标记了numpy 数组,这就是为什么我猜它是 numpy 哈哈;}
    猜你喜欢
    • 2011-08-15
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 2018-09-10
    相关资源
    最近更新 更多