python 二维数组 行列转换

本文介绍了Python中将二维列表转置的三种常见方法:使用双重循环、使用zip函数以及使用列表推导式。这些方法适用于处理二维数组,帮助理解列表的行列转换操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

arr = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
 
#方法1
ar2 =[]
for i in range(len(arr[0])):
    b =[]
    for j in range(len(arr)):
        b.append(arr[j][i])
    ar2.append(b)
print(ar2)
 
#方法2
ar2 = list(map(list,zip(*arr)))
print(ar2)
 
#方法3
ar2 = [ [row[i] for row in arr] for i in range(len(arr[0])) ]
print(ar2)

### Python二维数组的用法和操作 #### 创建二维数组Python 中,可以使用多种方法创建二维数组。最常用的是通过 `list` 或者 NumPy 库中的 `np.array()` 函数。 对于列表而言,可以通过嵌套列表来表示二维数组: ```python two_dim_list = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] ``` 而利用 NumPy,则更加简洁高效[^4]: ```python import numpy as np two_dim_array = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) ``` #### 访问元素 访问二维数组中的单个元素可通过指定行列索引来完成: ```python element = two_dim_array[0][1] # 获取第1行第2列的值 print(element) # 输出: 2 ``` 也可以采用另一种更直观的方式来进行索引: ```python element = two_dim_array[0, 1] # 同样获取第1行第2列的值 print(element) # 输出: 2 ``` #### 修改元素 修改特定位置上的数值同样简单明了: ```python two_dim_array[0, 1] = 10 # 将原位置处的2替换为10 print(two_dim_array) # 结果如下所示: #[[ 1 10 3] # [ 4 5 6] # [ 7 8 9]] ``` #### 添加新行/列 要向现有二维数组添加新的行或列,可借助于 `vstack()` 和 `hstack()` 方法(垂直堆叠和平铺堆叠),或者直接追加到列表再转换成 ndarray 对象. 以下是增加一行的例子: ```python new_row = np.array([[10, 11, 12]]) updated_two_dim_array = np.vstack((two_dim_array, new_row)) print(updated_two_dim_array) # 结果如下所示: #[[ 1 10 3] # [ 4 5 6] # [ 7 8 9] # [10 11 12]] ``` 如果想要新增一列则可以用 hstack() : ```python new_column = np.array([[13], [14], [15], [16]]) updated_two_dim_array_with_col = np.hstack((updated_two_dim_array, new_column)) print(updated_two_dim_array_with_col) # 结果如下所示: #[[ 1 10 3 13] # [ 4 5 6 14] # [ 7 8 9 15] # [10 11 12 16]] ``` #### 删除行/列 删除某一行或某一列的操作相对复杂一些,通常需要先找到目标维度对应的布尔掩码,之后应用该掩码过滤掉不需要的部分。 这里给出移除第二行的一个例子: ```python mask = np.ones(len(updated_two_dim_array), dtype=bool) mask[1] = False # 设置第二个元素为False filtered_two_dim_array = updated_two_dim_array[mask] print(filtered_two_dim_array) # 结果如下所示: #[[ 1 10 3] # [ 7 8 9] # [10 11 12]] ``` 同样的逻辑适用于去除任意列的情况。 #### 转换形状 有时可能希望改变已有的多维数组结构而不影响其内部的数据分布,在这种情况下就可以考虑调用 reshape() 方法重设尺寸规格。 比如将上述三维矩阵降级回原始状态: ```python reshaped_to_original_shape = filtered_two_dim_array.reshape(-1, 3) print(reshaped_to_original_shape) # 结果如下所示: #[[ 1 10 3] # [ 7 8 9] # [10 11 12]] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值