百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

一图胜千言,超形象图解NumPy教程

liuian 2025-02-15 16:31 34 浏览

  • NumPy是Python中诸多数据科学库的重要基础,例如,pandas,OpenCV,TensorFlow等,学习NumPy对其它NumPy依赖数据科学库意义重大。
  • 本文翻译一篇不错的NumPy基础图解教程,从一维数组(向量)二维数组(矩阵)多维数组(3维及更高维数组)介绍NumPy。
  • 原文:NumPy Illustrated: The Visual Guide to NumPy,文章灵感部分来自Jay Alammar的NumPy图解文章

0、NumPy数组 vs Python列表

  • Numpy数组中插入、移除元素没Python列表高效;
  • Numpy数组可直接做四则运算、Python列表则需借助列表推倒式等;
  • Numpy数组更紧凑,高维时尤为明显;
  • Numpy数组向量化后运算速度比Python列表更快;
  • Numpy数组通常是同质化的,仅仅当数组中元素类型一致时处理速度快。

1、一维数组 (向量)1.1 数组创建

  • 通过Python列表创建??必须确保列表中元素类型一致,否则,进一步处理报错。??NumPy数组区别于Python列表,不能在数组末尾直接扩展元素。
  • 通过np.zeros或np.empty等创建 可以通过np.zeros、np.ones、np.empty、np.full等创建数组。
  • 通过np.zeros_like或np.empty_like等创建 以上都有对应的_like函数,可快速创建a数组长度一致数组,
  • 通过np.arange和np.linspace创建 np.arange类似于Python range??np.arange对元素数据类型敏感,特别是float类别,以下方式可供参考
  • 创建随机数组 已弃用方法,新方法,

1.2 数组索引

1.1中介绍了多种构建数组的方法,1.2中介绍如何愉快的从数组中取元素。

  • 常见索引方法
  • 布尔运算符索引 ??不能用三元运算符,如3<=a<=5。
  • np.where、np.clip+布尔运算符索引

1.3 数组操作

计算速度是NumPy的亮点之一,其数组运算操作速度接近C++,把数组当作整体来运算,避免Python的循环,可以解决一部分Python慢的问题,这一节介绍NumPy的数组操作。

  • 加减乘除、取整等基础操作 类似python加减乘除、取余数,向上、向下、四舍五入最大、最小、均值等,
  • 三角函数
  • 标量计算
  • 支持更多数学方法
  • 排序 只有部分Python列表排序操作,

1.4 数组元素查找

无Python list的index函数,通常有三种方法,

  • where,但不够pythonic、需压遍历数组;
  • next,较快,需要Numba;
  • searchsorted,适合已排序数组。

1.5 浮点数比较

2 二维数组 (矩阵)2.1 二维数组创建

同一维数组,??使用[[]],

随机数组构建

2.2 二维数组索引

比Python嵌套列表更方便

2.3 二维数组操作

NumPy支持跨行、跨列操作,此时NumPy引入了axis的概念,axis=1,axis=0,

  • 行列or行or列求和
  • +、-、*、/、//、**和@ +、-、*、/、//、**类似一维数组,@为二维数组独有,二维数组整体计算,二维数组与单个元素、一维数组计算,@计算非对称线性代数外积,
  • 行/列向量计算
  • 二维数组变形 一维数组、二维数组之间互转,
  • hstack、vstack、column_stack拼接数组
  • hsplit、vsplit拆分二维数组
  • tile、repeat复制数组
  • delete二维数组删除
  • insert二维数组插入
  • append二维数组末尾操作
  • pad二维数组边界操作

2.4 二维数组网格化

针对网格化,C、传统Python及MATLAB都有解决办法,

NumPy的广播机制让网格化更高效,

此外,网格还可以用于数组索引,

2.5 二维数组统计

支持min/max, argmin/argmax, mean/median/percentile, std/var等函数,前面2.3节介绍过部分。

argmin/argmax返回最大、最小值下标,

all和any适用特定维度,

2.6 二维数组排序

注意指定axis,

  • argsort按某一列排序
  • lexsort对所有列进行排序 ??总是按行执行,从下到上,
  • sort结合order

3多维数组 (3维及更高维数组)

下面主要以3维数组为例。

3.1多维数组创建

通过reshape 1维数组、嵌套Python list创建多维数组,索引(z,y,x)中,z是平面方向,(y,x)在z平面上坐标,


3.2多维数组创建hstack,vstack

适用3维数组,多了一个dstack,

??但是,这些函数支持的索引顺序是(y,x,z),

需要借助concatenate改变多维数组布局,

广播机制也适用多维数组,einsum(Einstein summation)函数在多维数组中可避免过多Python循环,让代码更简洁,

-END-

相关推荐

苹果怎么查询手机激活时间(苹果手机如何查询手机激活时间)
  • 苹果怎么查询手机激活时间(苹果手机如何查询手机激活时间)
  • 苹果怎么查询手机激活时间(苹果手机如何查询手机激活时间)
  • 苹果怎么查询手机激活时间(苹果手机如何查询手机激活时间)
  • 苹果怎么查询手机激活时间(苹果手机如何查询手机激活时间)
免费手机模拟器(免费手机模拟器下载)

目前能成功在电脑上模拟苹果系统的iOS模拟器,对比市面上常见的安卓模拟器少太多了,主要原因还是iOS系统比较封闭,难于开发。虽然前面说开发很困难,但是国内还是有一些厉害的IT小组成功推出了iOS模拟器...

免费主题商店app下载(免费主题商店app下载苹果)
  • 免费主题商店app下载(免费主题商店app下载苹果)
  • 免费主题商店app下载(免费主题商店app下载苹果)
  • 免费主题商店app下载(免费主题商店app下载苹果)
  • 免费主题商店app下载(免费主题商店app下载苹果)
新手怎么制作word表格(工作表格制作)

步骤如下:1、本次演示使用的软件为word文字处理软件,软件版本为Microsoftoffice家庭和学生版2016。2、首先打开Excel电子表格,根据问题描述,我们在word中插入两页表格。3、...

电脑开机启动进不了系统怎么办
电脑开机启动进不了系统怎么办

一、修复错误如果频繁无法正常进入系统,则开机后马上按F8,看能否进入安全模式或最后一次配置正确模式,如能则进入后会自动修复注册表,并回忆前几次出现不正常现象时进行了什么操作,并根据怀疑是某个应用软件导致问题产生,将其卸载,然后正常退出,...

2026-01-02 13:05 liuian

win11任务栏隐藏不了(win11任务栏怎么隐藏)

方法/步骤:  1、打开电脑桌面,双击我的计算机。  2、打开控制面板。  3、点击类别切换到大图标或小图标。  4、找到通知区域图标打开。  5、选择显示图标或隐藏图标也可以仅显示通知,选好以后点击...

win10怎么打开系统更新(怎么开启windows10更新)
  • win10怎么打开系统更新(怎么开启windows10更新)
  • win10怎么打开系统更新(怎么开启windows10更新)
  • win10怎么打开系统更新(怎么开启windows10更新)
  • win10怎么打开系统更新(怎么开启windows10更新)
笔记本注册表编辑器怎么打开

你好,要打开注册表编辑器,可以按照以下步骤进行操作:1.打开“运行”对话框。可以通过按下Win+R键组合,或者在开始菜单中搜索“运行”来打开。2.在“运行”对话框中,输入“regedit”并点...

怎样查询ip地址(怎么顺着ip地址找人)

答:查看ip地址的步骤如下,1.通过网页进行查询:可以通过第三方平台进行查询。2.通过电脑内部的网络连接进行查询:首先我们点击桌面右下角的开始,在开始的选项栏当中找到运行,点击运行,然后再用新的对...

windows server 2003的应用(win2003应用程序服务器)

WindowsServer2003支持FAT16、FAT32和NTFS文件系统,同时也支持CDFS(光盘文件系统)和UDF(通用磁盘格式)。NTFS文件系统的安全性高于FAT文件系统,支持域的管理...

c盘格式化恢复软件(格式化c盘 软件)

点我名字,然后点“他的空间”,我的空间有各种恢复软件的详细介绍、下载地址以及使用说明。C盘格式化后需重装操作系统,系统装好后,要恢复其他盘的软件的话可以在格式化C盘前将桌面数据备份在其他盘,重装完成后...

u盘磁盘被写保护最简单解除方法

u盘磁盘被写保护解除方法,去掉u盘写保护可以先检查u盘写保护的按钮是否打开,然后在电脑上将u盘文件拷贝一份,接着右键点击u盘,选择属性选项,点击工具选项进入,点击开始检查选项,最后如果有问题点击修复即...

免费刷机工具(免费刷机工具哪个好用)

 刷机机灵你的安卓手机智能管家:刷机精灵软件是一款适用于Andorid设备的一键刷机软件。它能够自动安装设备驱动、自动获取ROOT权限、自动刷入ClockworkmodRecovery以完成Andr...

硬盘重新分区怎么分(硬盘重新分区后怎么装系统)

对已分区的硬盘重新分区的方法如下:1. 备份重要数据:重新分区会格式化硬盘,导致数据丢失。因此,在进行重新分区之前,需要备份重要数据。2. 进入磁盘管理工具:在Windows操...

一键ghost快捷键(1键ghost)

一、开机连续按F8,在系统启动菜单中,选择一键还原选项进行一键还原。二、制作启动盘重装操作系统。安装GHOST版本操作系统方法:1、将制作好的PE启动U盘插入电脑USB接口(台式用户建议将u盘插在主机...