Я генерирую 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]]