gpt4 book ai didi

Python:如何转置矩阵的一部分

转载 作者:太空宇宙 更新时间:2023-11-04 08:52:13 24 4
gpt4 key购买 nike

如果我有这样的矩阵:

matrix = [[1, 2, 3, 4], 
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]]

我怎样才能得到这个:

matrix = [[1, 2, 3, 4], 
[5, 6, 10, 14],
[9, 7, 11, 15],
[13, 8, 12, 16]]

也就是说,我如何排除第一行和第一列以及转置其余部分?

我试过了,它保持矩阵不变:

for i in range(1, 4):
for j in range(1, 4):
temp = copy.deepcopy(matrix[i][j])
matrix[i][j] = matrix[j][i]
matrix[j][i] = temp

当我尝试时:

new_matrix = list(matrix)
for i in range(1, 4):
for j in range(1, 4):
matrix[i][j] = new_matrix[j][i]
matrix[j][i] = new_matrix[i][j]

我明白了:

[[1, 2, 3, 4], 
[5, 6, 10, 14],
[9, 10, 11, 15],
[13, 14, 15, 16]]

我想将它转置到主对角线和次对角线上。

最佳答案

学习 numpy,即使是为了这个简单的任务也是值得的。

import numpy as np

m=np.array(range(1,17)).reshape(4,4)
m[1:,1:]=m[1:,1:].transpose()

array([[ 1, 2, 3, 4],
[ 5, 6, 10, 14],
[ 9, 7, 11, 15],
[13, 8, 12, 16]])

关于Python:如何转置矩阵的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33990279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com