我如何才能对矩阵的每一行执行操作并将其复制到另一个矩阵? 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中的所有元素。打印语句可以提供预期的结果,但是如何将这些行复制到新的矩阵中?
答案 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]