Копирование каждой строки одной матрицы в каждую строку другой пустой матрицы в Python - PullRequest
0 голосов
/ 09 ноября 2018

Как мне выполнить операцию над каждой строкой матрицы и скопировать ее в другую матрицу? data1 и data2 - матрицы с размером, предположим, что n * 4, и мне нужно добавить 1 к каждому элементу.

import numpy as np
import sys
data1=np.matrix('1 1 1 1;2 2 2 2;3 3 3 3;4 4 4 4')
row1=np.matrix('1 1 1 1')
for row in data1:
    row=row+row1
    print(row)
//The results is as below
//[[2 2 2 2]]
//[[3 3 3 3]]
//[[4 4 4 4]]
//[[5 5 5 5]]

Вторая матрица data2 должна содержать все элементы из матрицы data1 после манипуляции строк. Оператор print дает ожидаемый результат, но как мне скопировать эти строки в новую матрицу?

1 Ответ

0 голосов
/ 09 ноября 2018

Предполагается, что вы используете numpy:

import numpy as np

data1 = np.array([[1,2,3,4],
                  [5,6,7,8]])

mu = [1,1,1,1]

data2 = data1 + mu

Или, если вы действительно хотите добавить 1 к каждому элементу:

data2 = data1 + 1

Или, если data1 - это просто список списков, используйте понимание вложенного списка:

mu = [1,1,1,1]
data1 = [[1,2,3,4],
         [5,6,7,8]]
data2 = [[r+m for r,m in zip(row,mu)] for row in data1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...