У меня есть нулевая матрица и размер = (4, 8)
x = [[0, 0, 0 , 0, 0, 0, 0, 0],
[0, 0, 0 , 0, 0, 0, 0, 0],
[0, 0, 0 , 0, 0, 0, 0, 0],
[0, 0, 0 , 0, 0, 0, 0, 0],]
Кроме того, у меня есть три разные матрицы.
a = [[1, 1, 1 , 1, 1, 1, 1, 1],
[1, 1, 1 , 1, 1, 1, 1, 1],
[1, 1, 1 , 1, 1, 1, 1, 1],
[1, 1, 1 , 1, 1, 1, 1, 1],]
b = [[2, 2, 2 , 2, 2, 2, 2, 2],
[2, 2, 2 , 2, 2, 2, 2, 2],
[2, 2, 2 , 2, 2, 2, 2, 2],
[2, 2, 2 , 2, 2, 2, 2, 2],]
c = [[3, 3, 3 , 3, 3, 3, 3, 3],
[3, 3, 3 , 3, 3, 3, 3, 3],
[3, 3, 3 , 3, 3, 3, 3, 3],
[3, 3, 3 , 3, 3, 3, 3, 3],]
Я хочу получить следующеерезультаты
output = [[1, 2, 1, 2, 1, 2, 1, 2],
[2, 3, 2, 3, 2, 3, 2, 3],
[1, 2, 1, 2, 1, 2, 1, 2],
[2, 3, 2, 3, 2, 3, 2, 3],]
Значение матрица a отображается в (строка 0, строка 2) и (столбец 0, столбец 2, столбец 4, столбец 6)
Значение matrix b появляется в строке 0, строке 1, строке 2, строке 3, но в строке 0 и строке 2 значение 2 появляется в столбце 1, столбце 3, столбце 5, столбце 7далее в строке 1 и строке 3 значение 2 отображается в столбце 0, столбце 2, столбце 4, столбце 6
Значение matrix c отображается в (строка 1, строка3) и (столбец 1, столбец 3, столбец 5, столбец 7)
import numpy as np
h, w = x.shape
output = np.zeros((h, w))
for i in range(h):
for j in range(w):
if (i % 2) == 0 and (j % 2) == 0:
output[i, j] = a[i, j]
elif (i % 2) == 1 and (j % 2) == 1:
output[i, j] = c[i, j]
else:
output[i, j] = b[i, j]
print(output)
'''
output = [[1. 2. 1. 2. 1. 2. 1. 2.]
[2. 3. 2. 3. 2. 3. 2. 3.]
[1. 2. 1. 2. 1. 2. 1. 2.]
[2. 3. 2. 3. 2. 3. 2. 3.]]
'''
Я хочу попытаться не использовать цикл for, могу ли я решить его с помощью numpy?