将一个矩阵的每一行复制到python中另一个空矩阵的每一行

时间:2018-11-09 18:01:32

标签: python numpy matrix multidimensional-array

我如何才能对矩阵的每一行执行操作并将其复制到另一个矩阵? 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]]

第二个矩阵数据2应包含行处理后的矩阵数据1中的所有元素。打印语句可以提供预期的结果,但是如何将这些行复制到新的矩阵中?

1 个答案:

答案 0 :(得分:4)

假设您使用的是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]