我们如何在python的一行中随机填充1或0的矩阵?

时间:2019-01-07 18:05:15

标签: python numpy

我写了一段代码,随机填充0或1的矩阵。但是它以4-5行结束。我希望它在1行中。

pop_size = (8,10)
initial_pop = np.empty((pop_size))
for i in range(pop_size[0]):
     for j in range(pop_size[1]):
          initial_pop[i][j] = rd.randint(0,1)

5 个答案:

答案 0 :(得分:1)

我了解您正在使用NumPy。如果是这样,那么答案是:

np.random.randint(2, size=pop_size)

这是有关此例程的NumPy文档文章:LINK。 Numpy有据可查,下次尝试自己检查文档。

edit:参数应为2,而不是1

答案 1 :(得分:1)

在标准Python中,尝试:

from random import randint
x = [[randint(0,1) for _ in range(8)] for _ in range(10)]

答案 2 :(得分:1)

使用numpy的randint方法

matrix = np.random.randint(2, size=pop_size)

答案 3 :(得分:0)

在以下位置查看答案:Simple way to create matrix of random numbers

您可以使用numPy轻松填充矩阵。

例如:

3x3矩阵:

import numpy as np
my_matrix = np.random.randint(2,size=3)

output = ([[0,1,0],
          [0,0,1],
          [1,0,1]])

文档: https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.randint.html?highlight=randint#numpy.random.randint

答案 4 :(得分:0)

如果您想在数组中只包含1或0,则可以按照以下步骤进行。

    import numpy as np
    np.zeros(2,2) #it will create [2,2] matrix with all zeros
    np.ones(2,2)  #it will create [2,2] matrix with all ones