【问题标题】:create binary random matrix with probability in python在python中创建具有概率的二进制随机矩阵
【发布时间】:2017-03-28 09:37:00
【问题描述】:

我是 python 新手。我想写一个函数来生成一个随机的nxm二进制矩阵,概率p的每个值为0。

我做了什么。

def randbin(M,N,P):              # function to generate random binary matrix    
    mat = (np.random.rand(M,N)>=P).astype(int)
    return mat  

y = randbin(5,4,0.3)

每次打印输出时,我都没有按照估计的概率得到结果。我不知道我做错了什么。

【问题讨论】:

    标签: python numpy matrix probability


    【解决方案1】:

    我看不出你的方法有什么问题...生成概率 P 为 0 的 0 和 1 的随机矩阵的更好方法是使用random.choice

    def randbin(M,N,P):  
        return np.random.choice([0, 1], size=(M,N), p=[P, 1-P])
    

    为了更好地理解,请查看random.choice 文档。

    【讨论】:

    • 如果有效,请不要忘记通过勾选我的答案左侧的复选标记将帖子标记为已回答(并欢迎堆叠)
    • 大小是否总是一个元组。例如,我想在上述函数中创建一个大小为 100 的二进制矩阵。即 np.random.choice([0,1],size = (100). 然后它给了我一个错误:只有长度为 1 的数组可以转换为 Python 标量
    • 元组用于矩阵。对于 100x100 矩阵,请使用 size=(100, 100)。对于 100 个元素的数组,请使用 size=100size=(100,)
    • 有时这行不通。我得到相等的0's & 1's 有时虽然我给出了不等的概率。
    • 这正是概率的作用!当你掷硬币 10 次时,你可以有 10 张脸,它发生了。如果这种行为给您带来困扰,您需要了解概率。
    猜你喜欢
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 2022-01-03
    • 2020-05-24
    相关资源
    最近更新 更多