matrix = []
n = int(input("n: "))
m = int(input("m: "))
for i in range(m):
data = input()
data_list = data.split()
data_list = [int(i) for i in data_list]
matrix.append(data_list)
我制作了一个python代码,用于将整数放入MxN数组中。 我想将其更改为 Nx(M + 1)数组
将 array [m] [n]更改为array [n] [m]
并将0放入 array [] [m + 1]
例如:
n : 4
m : 3
输入整数:
1 2 3 4
5 6 7 8
9 10 11 12
变成:
1 5 9 0
2 6 10 0
3 7 11 0
4 8 12 0
如何使该代码执行此操作? 我尝试过
for i in range(m):
for j in range(n):
matrix[i][j] = matrix[j][i]
但这是错误的方法。
答案 0 :(得分:0)
matrix = [
[ 1, 2, 3, 4 ],
[ 5, 6, 7, 8 ],
[ 9, 10, 11, 12 ]
]
def change(matrix):
m = len(matrix)
n = len(matrix[0])
result = [[] for i in range(n)]
for i in range(m+1):
for j in range(n):
if i == m:
result[j].append(0)
else:
result[j].append(matrix[i][j])
return result
changed = change(matrix)
print(changed)
答案 1 :(得分:0)
要解决您的问题,请熟悉 NumPy 。
import numpy as np
t1 = np.arange(1, 13).reshape(3, 4)
创建您的源表:
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
然后您应该转置它:
t2 = t1.T
给出:
array([[ 1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11],
[ 4, 8, 12]])
最后:
np.c_[ t2, np.zeros(4) ]
添加4个零的列,得到最终结果:
array([[ 1., 5., 9., 0.],
[ 2., 6., 10., 0.],
[ 3., 7., 11., 0.],
[ 4., 8., 12., 0.]])