Как я могу контролировать (уменьшить) число 1 в моей матрице сетки? - PullRequest
0 голосов
/ 06 марта 2020

Я генерирую random matrix с 1 и 0 , и я создал матрицу с именем grid с тем же размером. Мне нужно контролировать количество единиц, уменьшая и увеличивая число единиц и помещая их в матрицу сетки . Например, если матрица x имеет 60 чисел, мне нужно уменьшить эти 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]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...