python的numpy_Python之Numpy详细教程

NumPy是Python中的一个核心库,提供了多维数组对象和处理数组的丰富功能。它源于Numeric和Numarray,由Travis Oliphant整合创建。NumPy支持算术和逻辑运算、傅立叶变换、线性代数以及随机数生成。常与SciPy和Matplotlib结合使用,构成Python科学计算的基础。NumPy的ndarray是其核心,表示固定类型元素的多维数组。dtype对象描述数组内存块的解释,包括数据类型、大小和字节序。数组属性如.shape和.ndim分别提供数组的形状和维数信息。
摘要由CSDN通过智能技术生成

NumPy - 简介

NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。

Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包。 这个开源项目有很多贡献者。

NumPy 操作

使用NumPy,开发人员可以执行以下操作:

数组的算数和逻辑运算。

傅立叶变换和用于图形操作的例程。

与线性代数有关的操作。 NumPy 拥有线性代数和随机数生成的内置函数。

NumPy – MatLab 的替代之一

NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用。 这种组合广泛用于替代 MatLab,是一个流行的技术计算平台。 但是,Python 作为 MatLab 的替代方案,现在被视为一种更加现代和完整的编程语言。

NumPy 是开源的,这是它的一个额外的优势。

NumPy - Ndarray 对象

NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型。 它描述相同类型的元素集合。 可以使用基于零的索引访问集合中的项目。

ndarray中的每个元素在内存中使用相同大小的块。 ndarray中的每个元素是数据类型对象的对象(称为 dtype)。

从ndarray对象提取的任何元素(通过切片)由一个数组标量类型的 Python 对象表示。 下图显示了ndarray,数据类型对象(dtype)和数组标量类型之间的关系。

Ndarray

ndarray类的实例可以通过本教程后面描述的不同的数组创建例程来构造。 基本的ndarray是使用 NumPy 中的数组函数创建的,如下所示:

numpy.array

它从任何暴露数组接口的对象,或从返回数组的任何方法创建一个ndarray。

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

上面的构造器接受以下参数:

2185856530dfd6dd8a962b6d58edb718.png

看看下面的例子来更好地理解。

1b0da6c060ed785243ca1c2982cd3b53.png

e169f3cf3d611fc2fe82db73eb18f136.png

a153e9f4bcfeec3840b5d9a94a88ac86.png

bb53c84b8c257aa0d644b5ec7b0ce11d.png

NumPy - 数据类型

9046b4aeb151087164795e1737c949e4.png

数据类型对象 (dtype)

数据类型对象描述了对应于数组的固定内存块的解释,取决于以下方面:

数据类型(整数、浮点或者 Python 对象)

数据大小

字节序(小端或大端)

在结构化类型的情况下,字段的名称,每个字段的数据类型,和每个字段占用的内存块部分。

如果数据类型是子序列,它的形状和数据类型。

字节顺序取决于数据类型的前缀。 意味着编码是大端(最大有效字节存储在最小地址中)。

dtype可由一下语法构造:

numpy.dtype(object, align, copy)

参数为:

Object:被转换为数据类型的对象。

Align:如果为true,则向字段添加间隔,使其类似 C 的结构体。

Copy ? 生成dtype对象的新副本,如果为flase,结果是内建数据类型对象的引用。

6fb8b3fb1d2745eaed18aa18b9879e3c.png

dda07de5e43bb09d9f07da63e7162851.png

d50a1af03d034b4abcd5177dcb8ef68c.png

d7d02de4261435a6502821eaef63dfd6.png

3c2d98a5e1ce73b9fa8e0782e913c9d2.png

a444c3316d182f742f88b597bd4f4bf0.png

84d5fb0fb78e218c09118cd2e179feba.png

76b95a2c1c2b01e333770c83928661c1.png

每个内建类型都有一个唯一定义它的字符代码:

'b':布尔值

'i':符号整数

'u':无符号整数

'f':浮点

'c':复数浮点

'm':时间间隔

'M':日期时间

'O':Python 对象

'S', 'a':字节串

'U':Unicode

'V':原始数据(void)

NumPy - 数组属性

这一章中,我们会讨论 NumPy 的多种数组属性。

ndarray.shape

这一数组属性返回一个包含数组维度的元组,它也可以用于调整数组大小。

0b1ff1b4d8f19b0957a24fd2c41121cf.png

8252c8d654c1603bbf4d449f271755af.png

d4f35279f1b7ac24d48632f287740659.png

ndarray.ndim

这一数组属性返回数组的维数。

添加/删除元素

232dd612d8df14b6c5350bd9f10f2436.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值