NumPy 是 Python 中非常流行的数值计算库,提供了丰富的函数和工具,支持高效的数据处理,尤其是对于数组和矩阵的运算。
扁平化矩阵是将一个多维矩阵转换为一维矩阵。在 NumPy 中可以通过 ravel() 和 flatten() 函数实现矩阵扁平化。
ravel() 函数
ravel() 函数返回一个一维数组,这个数组是原矩阵的拷贝。原矩阵不发生变化。
示例1:扁平化一个二维矩阵
import numpy as np
matrix = np.array([[1, 2], [3, 4]])
flat_matrix = np.ravel(matrix)
print(flat_matrix)
输出:
[1 2 3 4]
示例2:扁平化一个三维矩阵
import numpy as np
matrix = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
flat_matrix = np.ravel(matrix)
print(flat_matrix)
输出:
[1 2 3 4 5 6 7 8]
flatten() 函数
flatten() 函数同样返回一个一维数组,这个数组是原矩阵的拷贝。与 ravel() 不同的是,如果指定了参数,flatten() 函数会返回指定形状的数组,常常用于将多维矩阵降为一维矩阵。
示例3:将一个二维矩阵展开为一维矩阵
import numpy as np
matrix = np.array([[1, 2], [3, 4]])
flat_matrix = np.ndarray.flatten(matrix)
print(flat_matrix)
输出:
[1 2 3 4]
示例4:将一个三维矩阵展开为一维数组(按列展开)
import numpy as np
matrix = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
flat_matrix = np.ndarray.flatten(matrix, order='F')
print(flat_matrix)
输出:
[1 5 3 7 2 6 4 8]
在示例4中,order='F' 表示按列展开。默认情况下,flatten() 函数按行展开。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用NumPy在Python中扁平化一个矩阵 - Python技术站