С учетом массива, например,
A = np.ones(shape=(7, 6), dtype=np.float32)
и списка
v = [[0, 2], [1, 4], [3, 5, 6]]
, что я хочу сделать, это добавить строки в A
для каждого элемента в v
,для v
есть 3 элемента, для v[0]
добавьте строку 0
и строку 2
по столбцам.Форма вывода - (3, 6)
, а вывод -
res = array([[2., 2., 2., 2., 2., 2.],
[2., 2., 2., 2., 2., 2.],
[3., 3., 3., 3., 3., 3.]])
# res[0] = A[0] + A[2]
# res[1] = A[1] + A[4]
# res[2] = A[3] + A[5] + A[6]
. Вот более четкий пример, дайте матрицу
m = [[1, 2, 3],
[2, 3, 4],
[1, 1, 1],
[2, 2, 2],
[1, 1, 1]]
и строки, которые нужно добавить
v = [[0, 1, 3], [2]]
Итак, здесь добавьте строки 0
, 1
и 3
в матрице m
, и так как в [2]
будет добавлена только одна строка, результат будет
# res.shape = (2, 3)
res[0] = m[0] + m[1] + m[3]
res[1] = m[2]
Есть ли более элегантный способ сделать это?