Замена каждой строки на столбец - PullRequest
0 голосов
/ 24 июня 2018

Учитывая массив X формы (n, m) и другое заданное число l как мне получить массив Y формы (n, l, m, l), где Y[i, j, :, :] - это нулевая матрица, которая была заменена j -й столбец в i -ой строке X.

Например, если

X = np.array([
    [1, 2, 3, 4],
    [2, 3, 4, 5],
    [3, 4, 5, 6]])
l = 5

, то

Y[2, 3] = np.array([
    [0, 0, 0, 3, 0],
    [0, 0, 0, 4, 0],
    [0, 0, 0, 5, 0],
    [0, 0, 0, 6, 0]
])

Спасибо.

1 Ответ

0 голосов
/ 24 июня 2018

Использование np.einsum:

Y = np.zeros((n, l, m, l))
np.einsum('ijkj->jik', Y)[...] = X
...