import numpy as np
arr_keys = np.array(np.mat('2 3 1 0; 3 3 3 1'))
arr_rand1 = np.random.rand(2, 4)
arr_rand2 = np.random.rand(2, 4)
arr_final = np.zeros((5, 2, 4))
Я хочу создать массив с именем arr_final формы (100, 2, 4), где 100 можно считать соответствующим времени, а 2, 4 - количество строк и столбцов соответственно
Для заполнения arr_final
я хочу использовать следующую логику:
Для каждой ячейки сетки в arr_final
ищите значение в соответствующей позиции в arr_keys
, давайте назовем его val_alpha
Заполните arr_final
, используя значения от arr_rand1
до позиции val_alpha
и используя значения от arr_rand2
после этого
Это можно сделать с помощью цикла for, но есть ли более питоническое решение?
- EDIT:
Вот цикл for soln:
for (i, j, k), value in np.ndenumerate(arr_final):
val_alpha = arr_keys[j][k]
arr_final[:val_alpha, j, k] = arr_rand1[j, k]
arr_final[val_alpha:, j, k] = arr_rand2[j, k]