在Python中,转置一个矩阵或列表可以通过多种方法实现,以下是几种常见的方法:
1. 使用双重循环:
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]arr2 = []for i in range(len(arr)):temp = []for j in range(len(arr)):temp.append(arr[j][i])arr2.append(temp)print(arr2) 输出:[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
2. 使用列表表达式(列表推导式):
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]arr2 = [[arr[j][i] for j in range(len(arr))] for i in range(len(arr))]print(arr2) 输出:[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
3. 使用zip函数:
def transpose(matrix):return [list(row) for row in zip(*matrix)]matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]transposed_matrix = transpose(matrix)print(transposed_matrix) 输出:[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
4. 使用numpy库的transpose函数或T属性:
import numpy as npmatrix = np.array([[1, 2, 3], [4, 5, 6]])transposed_matrix = np.transpose(matrix)print(transposed_matrix) 输出:[[1 4][2 5][3 6]]或者使用T属性transposed_matrix = matrix.Tprint(transposed_matrix) 输出:[[1 4][2 5][3 6]]
5. 使用pandas库的.T属性(适用于数据框):
import pandas as pddata = {'姓名': ['小明', '小红', '小刚'],'语文成绩': [80, 90, 85],'数学成绩': [90, 85, 95]}df = pd.DataFrame(data)df_T = df.Tprint(df_T) 输出:姓名 小明 小红 小刚语文成绩 80 90 85数学成绩 90 85 95
以上方法都可以实现矩阵或列表的转置,具体选择哪种方法取决于你的使用场景和个人偏好
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/82590.html