Создание нескольких случайных numpy массивов с различным диапазоном значений - PullRequest
0 голосов
/ 02 апреля 2020

У меня возник вопрос, поэтому я пытался создать 3D-массив, содержащий несколько 2D-массивов с различным диапазоном значений, например, я могу сделать это:

import numpy as np

np.random.seed(1)

arr = np.random.randint(1, 10, size = (2,2)) #Random 2D array with range of values (1, 10)
arr2 = np.random.randint(11, 20, size = (2,2)) #Random 2D array with range of values (11, 20)
...

и затем создать 3D-массив этим

newarr = np.array([arr, arr2, ...])

Я пытаюсь сделать это:

import numpy as np

np.random.seed(1)

n = 3

aux = []

for i in range (n):
    if i == 0:
        aux.append(rng4.randint(1, 10, size = (2, 2)))
    elif i == 1:
        aux.append(rng4.randint(11, 20, size = (2, 2)))
    elif i == 2:
        aux.append(rng4.randint(21, 30, size = (2, 2)))

newarr = np.array(aux)

Вывод - это то, что я хочу, но в любом случае, если мне нужен другой диапазон значений, мне нужно вручную "добавить" новый elif чтобы дать другой диапазон, есть ли способ сделать это? Спасибо!

1 Ответ

1 голос
/ 02 апреля 2020

Это тривиальное л oop упражнение по программированию:

newarr = np.empty(shape=(2, 2, n))
for i in range (n):
    newarr[:,:,i] = rng4.randint(i * 10 + 1, i * 10 + 10,
                                 size = (2, 2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...