- NumPy 教程
- NumPy - 首页
- NumPy - 简介
- NumPy - 环境配置
- NumPy 数组
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy 数组的创建和操作
- NumPy - 数组创建例程
- NumPy - 数组操作
- NumPy - 从现有数据创建数组
- NumPy - 从数值范围创建数组
- NumPy - 数组迭代
- NumPy - 数组重塑
- NumPy - 数组拼接
- NumPy - 数组堆叠
- NumPy - 数组分割
- NumPy - 数组扁平化
- NumPy - 数组转置
- NumPy 索引和切片
- NumPy - 索引和切片
- NumPy - 高级索引
- NumPy 数组属性和运算
- NumPy - 数组属性
- NumPy - 数组形状
- NumPy - 数组大小
- NumPy - 数组步幅
- NumPy - 数组元素大小
- NumPy - 广播
- NumPy - 算术运算
- NumPy - 数组加法
- NumPy - 数组减法
- NumPy - 数组乘法
- NumPy - 数组除法
- NumPy 高级数组运算
- NumPy - 交换数组轴
- NumPy - 字节交换
- NumPy - 复制和视图
- NumPy - 元素级数组比较
- NumPy - 数组过滤
- NumPy - 数组连接
- NumPy - 排序、搜索和计数函数
- NumPy - 数组搜索
- NumPy - 数组并集
- NumPy - 查找唯一行
- NumPy - 创建日期时间数组
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 统计函数
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - NumPy 的 I/O 操作
- NumPy 排序和高级操作
- NumPy - 数组排序
- NumPy - 沿轴排序
- NumPy - 使用花式索引排序
- NumPy - 结构化数组
- NumPy - 创建结构化数组
- NumPy - 操作结构化数组
- NumPy - 字段访问
- NumPy - 记录数组
- NumPy - 加载数组
- NumPy - 保存数组
- NumPy - 向数组追加值
- NumPy - 交换数组列
- NumPy - 向数组插入轴
- NumPy 处理缺失数据
- NumPy - 处理缺失数据
- NumPy - 识别缺失值
- NumPy - 删除缺失数据
- NumPy - 缺失数据插补
- NumPy 性能优化
- NumPy - 使用数组进行性能优化
- NumPy - 使用数组进行矢量化
- NumPy - 数组的内存布局
- NumPy 线性代数
- NumPy - 线性代数
- NumPy - 矩阵库
- NumPy - 矩阵加法
- NumPy - 矩阵减法
- NumPy - 矩阵乘法
- NumPy - 元素级矩阵运算
- NumPy - 点积
- NumPy - 矩阵求逆
- NumPy - 行列式计算
- NumPy - 特征值
- NumPy - 特征向量
- NumPy - 奇异值分解
- NumPy - 求解线性方程组
- NumPy - 矩阵范数
- NumPy 元素级矩阵运算
- NumPy - 求和
- NumPy - 求平均值
- NumPy - 求中位数
- NumPy - 求最小值
- NumPy - 求最大值
- NumPy 集合运算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 并集
- NumPy - 差集
- NumPy 有用资源
- NumPy 编译器
- NumPy - 快速指南
- NumPy - 有用资源
- NumPy - 讨论
NumPy ndarray.flatten() 方法
NumPy 的ndarray.flatten()方法用于返回一个新的1维数组,它是原始数组的扁平化副本。
ndarray.flat属性是一个迭代器,而ndarray.flatten()创建一个新的数组。
我们可以指定扁平化的顺序:'C'表示行优先(C风格)顺序,'F'表示列优先(Fortran风格)顺序,'A'表示如果数组是Fortran连续的则为'F',否则为'C','K'表示元素在内存中出现的顺序。
语法
Numpy ndarray.flatten 函数的语法如下:
ndarray.flatten(order='C')
参数
此函数接受一个参数,即 'C',表示行优先,默认为此值。
我们可以赋值为 'F':列优先,'A':如果 a 在内存中是 Fortran 连续的,则以列优先顺序展开,否则以行优先顺序展开;'K':按照元素在内存中出现的顺序展开 a。
返回值
此函数返回一个一维 NumPy 数组,其中包含输入数组中所有元素,按照指定的顺序排列。
示例 1
以下是 NumPy ndarray.flatten() 方法的示例,它展示了如何将一个二维数组以默认的行优先顺序展平成一维数组,结果为 [1, 2, 3, 4, 5, 6]:
import numpy as np
# Creating a 2D numpy array
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
# Flattening the array using the default order ('C')
flattened_array = array_2d.flatten()
print("Original 2D array:")
print(array_2d)
print("\nFlattened array (row-major order):")
print(flattened_array)
输出
Original 2D array: [[1 2 3] [4 5 6]] Flattened array (row-major order): [1 2 3 4 5 6]
示例 2
在这个例子中,我们展示了如何将一个三维数组以列优先顺序展平成一维数组,结果为 [1, 5, 3, 7, 2, 6, 4, 8]:
import numpy as np
# Creating a 3D numpy array
array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
# Flattening the array using the 'F' order
flattened_array = array_3d.flatten(order='F')
print("Original 3D array:")
print(array_3d)
print("\nFlattened array (column-major order):")
print(flattened_array)
输出
Original 3D array: [[[1 2] [3 4]] [[5 6] [7 8]]] Flattened array (column-major order): [1 5 3 7 2 6 4 8]
示例 3
下面的例子展示了如何使用 'A' 顺序展平一个 Fortran 连续数组,这将导致列优先顺序展平,结果为 [1, 4, 2, 5, 3, 6]:
import numpy as np
# Creating a 2D numpy array with Fortran-contiguous memory layout
array_fortran = np.asfortranarray([[1, 2, 3], [4, 5, 6]])
# Flattening the array using the 'A' order
flattened_array = array_fortran.flatten(order='A')
print("Original Fortran-contiguous 2D array:")
print(array_fortran)
print("\nFlattened array ('A' order):")
print(flattened_array)
输出
Original Fortran-contiguous 2D array:
[[1 2 3]
[4 5 6]]
Flattened array ('A' order):
[1 4 2 5 3 6]
numpy_array_manipulation.htm
广告