Что говорит заголовок. Я пытаюсь выполнить следующие задачи:
1) выполнить двоичную операцию (например, +, -, *, /,>, <) между двумя двумерными массивами, <code>A1, A2
где A1.shape = (N1, N2_1)
, A2.shape = (N1, N2_2)
, чтобы сгенерировать массив массивов 3-й формы, форма которого (N, N2_1, N2_2)
2), выполнить двоичную операцию (например, +, -, *, /,>, <) междудва трехмерных массива numy, <code>A1, A2
, где A1.shape = (N1, N2, N3_1)
, A2.shape = (N1, N2, N3_2)
для создания массива 4-d numpy, форма которого (N, N2, N3_1, N3_2)
Я пишу очень непифонический кодсделать первое задание 1)
. Я буду признателен, если кто-нибудь покажет мне правильный пример кода Python, чтобы сделать это.
моя попытка:
источники данных:
import numpy as np
n_row = 10000
n_col_a1 = 3
n_col_a2 = 4
a1 = np.tile(np.arange(n_col_a1), (n_row, 1))
a2 = np.tile(np.arange(n_col_a2), (n_row, 1))
моя попытка пифонического вещания:
X1 = np.broadcast_to(a1, (n_col_a2, *a1.shape))
X1 = np.moveaxis(X1, 0, -1)
X2 = np.broadcast_to(a2, (n_col_a1, *a2.shape))
X2 = np.moveaxis(X2, 0, -2)
result_a1_minus_a2 = X1 - X2
print(result_a1_minus_a2)