Как в центре заданного массива создать набор случайных чисел

import numpy as np
from random import randint
import random

z = np.arange(25).reshape(5, 5)
z[1:-1,1:-1]=np.array([random.random() for i in range(9)]).reshape(3,3)    
print(z)

Получил такую схему но почему-то не работает модуль random и все числа в центре одинаковы

введите сюда описание изображения


Ответы (2 шт):

Автор решения: Виктор

Вы же сами написали:

from random import randint

так и используйте

randint(minInt, maxInt)

[[ 0  1  2  3  4]
 [ 5  5  2  3  9]
 [10  2  3  5 14]
 [15  1  1  2 19]
 [20 21 22 23 24]]

Полностью:

import numpy as np
from random import randint

z = np.arange(25).reshape(5, 5)
z[1:-1,1:-1]=np.array([randint(0,5) for i in range(9)]).reshape(3,3)    

print(z)
→ Ссылка
Автор решения: Алексей Р

import random здесь лишний, как и списковое включение

import numpy as np

z = np.arange(25).reshape(-1, 5)  # если один из аргументов отрицательный, то соотв. измерение вычисляется автоматически
z[1:-1, 1:-1] = np.random.randint(0, 5, 9).reshape(3, -1)
print(z)
[[ 0  1  2  3  4]
 [ 5  3  4  2  9]
 [10  2  3  2 14]
 [15  2  1  3 19]
 [20 21 22 23 24]]
→ Ссылка