代码之家  ›  专栏  ›  技术社区  ›  SH_IQ

我如何控制(减少)网格矩阵中的数字1?

  •  0
  • SH_IQ  · 技术社区  · 5 年前

    我正在生成一个 random matrix 具有 1的 0的 我创建了一个大小相同的矩阵,称为网格。 我需要通过减少和增加1的数量来控制1的数量,并将它们放入我的网格矩阵中 例如,如果矩阵 x 有60个1,我需要将这60个减少到30,并将它们放入网格矩阵中。下面的python代码显示了这个过程。请问,我该如何修复它?

    这低于我的尝试。有人能帮我修一下吗?

    import random
    import numpy as np
    
    x = [[random.randint(0,1) for i in range(10)]for j in range(10)]
    grid = np.array([[0 for i in range(len(x[0]))]for j in range(len(x))])
    
    for i in range(len(grid)):
        for j in range(len(grid[0])):
            if x[i][j] <= 0.9:
                grid[i][j] = 0
            else:
                grid[i][j] = 1
    print(x)
    print(grid)
    

    输出示例:

    x=
    [[0, 1, 1, 1, 1, 1, 0, 0, 1, 1], [0, 0, 1, 0, 1, 1, 1, 0, 0, 0], [0, 1, 0, 1, 1, 0, 0, 0, 0, 1], [0, 0, 1, 1, 1, 1, 0, 1, 0, 0], [1, 0, 1, 1, 1, 1, 1, 0, 0, 0], [0, 0, 0, 1, 0, 1, 1, 1, 1, 1], [1, 0, 1, 1, 0, 1, 0, 0, 0, 1], [0, 0, 1, 1, 1, 1, 0, 1, 0, 0], [0, 1, 0, 1, 1, 1, 1, 0, 1, 0], [0, 0, 1, 1, 0, 1, 1, 0, 0, 0]]
    

    减少1的网格数量后,网格将变为如下:

    grid =
    [[0 0 0 0 0 0 0 0 1 0]
     [0 0 0 0 0 1 0 0 0 0]
     [0 0 0 1 0 0 0 0 0 0]
     [0 0 0 0 1 0 0 0 0 0]
     [0 1 0 0 0 0 0 1 0 0]
     [0 0 0 0 0 0 0 1 0 0]
     [0 0 0 1 0 0 0 1 0 0]
     [0 0 0 0 0 0 0 0 0 0]
     [0 1 0 0 0 1 0 0 0 0]
     [0 1 0 0 1 0 0 0 0 0]]
    
    0 回复  |  直到 5 年前
    推荐文章