Numpy 数组操作
发布时间:2023-07-03 09:17:18 所属栏目:教程 来源:
导读:Numpy 中包含了一些函数用于处理数组,本节重点介绍如下几类:
修改数组形状;
翻转数组;
格式转换。
1. 修改数组形状
常用的修改数组形状的函数有:
函数 说明
reshape 不改变数据的条件下
修改数组形状;
翻转数组;
格式转换。
1. 修改数组形状
常用的修改数组形状的函数有:
函数 说明
reshape 不改变数据的条件下
|
Numpy 中包含了一些函数用于处理数组,本节重点介绍如下几类: 修改数组形状; 翻转数组; 格式转换。 1. 修改数组形状 常用的修改数组形状的函数有: 函数 说明 reshape 不改变数据的条件下修改形状 flat 数组元素迭代器 flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组 ravel 返回展开数组 1.1 reshape numpy.reshape 函数可以在不改变数据的条件下修改形状,其函数原型如下: numpy.reshape(arr, newshape, order='C') 参数 说明 arr 待修改形状的数组 newshape 整数或者整数数组,新的形状应当兼容原有形状 order ‘C’ – 按行,‘F’ – 按列,‘A’ – 原顺序,‘k’ – 元素在内存中的出现顺序。 案例 生成一维数组,并利用 reshape 进行数组形状的重整: arr0 = np.arange().reshape(,) 输出结果为: array([[, , , ], [, , , ]]) 1.2 flatten numpy.ndarray.flatten返回一份数组拷贝,并折叠为一维的数组。对拷贝所做的修改不会影响原始数组,函数原型如下: ndarray.flatten(order='C') 其中,order 可选:‘C’ – 按行,‘F’ – 按列,‘A’ – 原顺序,‘K’ – 元素在内存中的出现顺序。 案例 将数组 arr0 以特定顺序展开: print(将arr0以行顺序展开:, arr0.flatten(order='C'))print(将arr0以列顺序展开:, arr0.flatten(order='F')) 执行结果为: 将arr0以行顺序展开: [ ]将arr0以列顺序展开: [ ] 1.3 ravel numpy.ravel() 展平的数组元素,顺序通常是C风格,返回的是数组视图(view),修改会影响原始数组。 该函数接收两个参数: numpy.ravel(a, order='C') 其中,order 可选:‘C’ – 按行,‘F’ – 按列,‘A’ – 原顺序,‘K’ – 元素在内存中的出现顺序。 案例 arr_r = np.ravel(arr0, order='C') 展开结果为: arr_r out:array([, , , , , , , ]) 通过切片赋值的方法,显式地改变 arr_r 的值,查看 arr0 的变化: arr_r[] = arr0 out:array([[, , , ], [ , , , ]]) 可以看到,虽然利用 ravel 方法对 arr0 进行了展开,但是对展开后的结果所做的修改,也会对应地出现在 arr0 上。 2. 翻转数组 numpy.transpose 函数用于对换数组的维度。 案例 调换 arr0 的数组维度,达到转置的效果: np.transpose(arr0)out:array([[, ], [ , ], [ , ], [ , ]]) 类似地,上述案例可以写为: arr0.transpose()out:array([[, ], [ , ], [ , ], [ , ]]) 或者: arr0.T out:array([[, ], [ , ], [ , ], [ , ]]) 3. 格式转换 借助于 tolist(),可以快速把 ndarray 格式的数组,转变为列表,方便在某些情况下使用。 案例 把 arr0 转化为列表: arr0.tolist()out:[[, , , ], [, , , ]] 可以看到,对于二维数组,转化后的结果是一个两层嵌套列表。 4. 小结 本节重点介绍数组操作的三种方法:修改数组形状、翻转数组以及转化数组为列表。特别要注意的是ravel() 函数,返回的是原始数组的视图,对结果的修改会对应地体现在原始数组上。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
