| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 通俗图解NumPy数据处理方法 -> 正文阅读 |
|
[Python知识库]通俗图解NumPy数据处理方法 |
NumPy原文链接: https://www.yanxishe.com/TextTranslation/3198 个人认为也是一个很好的学习网站 1.向量-一维数组1.1 初始化1.1.1 向量初始化
1.1.2 其他初始化向量方法1.1.3 序列数组初始化1.1.4 随机数组初始化1.2 向量索引对于数组来说可以通过访问数组索引来访问数组数据 1.3 向量操作
2.矩阵-二维数组2.1 矩阵初始化
2.2 轴参数在求和等操作中,NumPy可以实现跨行或跨列的操作。为了适用任意维数的数组,NumPy引入了axis的概念。axis参数的值实际上就是维度数量,如第一个维是axis=0 ,第二维是axis=1,依此类推。因此,在2维数组中,axis=0指列方向,axis=1指行方向。 2.3 行向量与列向量在2维数组中,行向量和列向量被区别对待。通常NumPy会尽可能使用单一类型的1维数组(例如,2维数组a的第j列a[:, j]是1维数组)。默认情况下,一维数组在2维操作中被视为行向量,因此,将矩阵乘行向量时,使用形状(n,)或(1,n)的向量结果一致。有多种方法可以从一维数组中得到列向量,但并不包括transpose: 因此,NumPy中共有三种类型的向量:1维数组,2维行向量和2维列向量。以下是两两类型转换图: 严格来说,除一维外的所有数组的大小都是一个向量(如a.shape == [1,1,1,5,1,1]),因此numpy的输入类型是任意的,但上述三种最为常用。可以使用np.reshape将一维矢量转换为这种形式,使用np.squeeze可将其恢复。这两个功能都通过view发挥作用。 2.4 矩阵操作矩阵的拼接有以下两种方式: 2.5 Meshgrids广播机制使得meshgrids变得容易。例如需要下图所示(但尺寸大得多)的矩阵: 在NumPy中有一种更好的方法,无需在内存中存储整个I和J矩阵(虽然meshgrid已足够优秀,仅存储对原始向量的引用),仅存储形状矢量,然后通过广播规实现其余内容的处理: 除了在二维或三维网格上初始化函数外,网格还可以用于索引数组: 2.6 矩阵统计就像sum函数,numpy提供了矩阵不同轴上的min/max, argmin/argmax, mean/median/percentile, std/var等函数。 2维及更高维中的argmin和argmax函数分别返回最小和最大值的索引,通过unravel_index函数可以将其转换为二维坐标: 2.7 矩阵排序虽然在前文中,axis参数适用于不同函数,但在二维数组排序中影响较小:
a[np.lexsort(np.flipud(a[2,5].T))],首先按第2列排序,然后按第5列排序; 3、sort函数还有一个order参数,但该方法极不友好,不推荐学习。 4、在pandas中排序也是不错的选择,因为在pandas中操作位置确定,可读性好且不易出错:
-pd.DataFrame(a).sort_values().to_numpy(),按从左到右的顺序对所有列进行排序。 3.三维数组(更高数组)通过重塑1维向量或转换嵌套Python列表来创建3维数组时,索引分别对应(z,y,x)。索引z是平面编号,(y,x)坐标在该平面上移动: 但这样的索引顺序并不具有广泛性,例如在处理RGB图像时,通常使用(y,x,z)顺序:首先是两个像素坐标,然后才是颜色坐标(Matplotlib中的RGB,OpenCV中的BGR): 因此,几何形状的创建实际取决于你对域的约定: 通过混合索引顺序可实现数组转置,掌握该方法将加深你对3维数据的了解。根据确定的轴顺序,转置数组平面的命令有所不同:对于通用数组,交换索引1和2,对于RGB图像交换0和1: 广播机制同样适用多维数组,更多详细信息可参阅笔记“ NumPy中的广播”。 最后介绍einsum(Einstein summation)函数,这将使你在处理多维数组时避免很多Python循环,代码更为简洁: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 10:39:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |