转置矩阵的行和列

下面由三个长度为 4 的列表组成的 3x4 矩阵:

>>> matrix = [
...     [1, 2, 3, 4],
...     [5, 6, 7, 8],
...     [9, 10, 11, 12],
... ]

下面的列表推导式将转置行和列:

>>> [[row[i] for row in matrix] for i in range(4)]
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

 嵌套的列表推导式在它后面的for上下文中求值,所以这个例子等效于:

>>> transposed = []
>>> for i in range(4):
...     transposed.append([row[i] for row in matrix])
...
>>> transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

展开后,和下面的代码相同:

>>> transposed = []
>>> for i in range(4):
...     # the following 3 lines implement the nested listcomp
...     transposed_row = []
...     for row in matrix:
...         transposed_row.append(row[i])
...     transposed.append(transposed_row)
...
>>> transposed
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]

在实际中,与复杂的控制流比起来,你应该更喜欢内置的函数。zip()函数对这个使用场景做得非常好:

>>> list(zip(*matrix))
[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

 

转载于:https://www.cnblogs.com/zijue/p/9792315.html

### 转置矩阵与原矩阵式的性质及关系 #### 式的定义 式是一种标量值函数,通常用来描述矩阵的一些重要属性。对于任意 \( n \times n \) 方阵 \( A \),其式记作 \( \text{det}(A) \)[^1]。 #### 转置矩阵的定义 转置矩阵是指将矩阵 \( A \)变为所得到的新矩阵,记为 \( A^T \)[^3]。具体来说,如果矩阵 \( A \) 中第 \( i \) 第 \( j \) 的元素为 \( a_{ij} \),那么在 \( A^T \) 中这个位置会变成第 \( j \) 第 \( i \) 的元素。 --- ### 关系分析 #### 性质 1:转置矩阵式等于原矩阵式 无论矩阵 \( A \) 是何种类型的方阵,都有如下性质成立: \[ \text{det}(A^T) = \text{det}(A) \][^2] 这一结论可以从式的定义推导而来。式的计算基于矩阵中各元素及其代数余子式的组合方式,在转置操作下,这种组合并不会改变最终的结果[^2]。 #### 性质 2:式不变性的直观解释 从几何角度来看,式可以被理解为由矩阵向量张成的空间体积。而转置操作本质上只是改变了观察角度——原本按照的向量现在按照来展示,但这并不影响空间体积本身。 因此,无论是通过代数方法还是几何意义,都能证明转置前后矩阵式保持一致。 --- ### 示例验证 考虑一个简单的 \( 2 \times 2 \) 矩阵: ```python import numpy as np # 定义原始矩阵 matrix_A = np.array([[1, 2], [3, 4]]) # 计算式 determinant_A = np.linalg.det(matrix_A) # 转置矩阵 transpose_matrix_A = matrix_A.T # 计算转置后的式 determinant_transpose_A = np.linalg.det(transpose_matrix_A) print(f"Original Matrix Determinant: {determinant_A}") print(f"Transposed Matrix Determinant: {determinant_transpose_A}") ``` 运此代码后可以看出,\( \text{det}(A) \) \( \text{det}(A^T) \) 的数值完全相同。 --- ### 结论 综上所述,转置矩阵与原矩阵之间最重要的关系之一就是它们拥有相同的式值。这是由于式的本质决定了它不会因单纯的位置调整(即转置)发生改变。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值