介绍 结构化数组是ndarray,其数据类型是由一系列命名字段 组织的简单数据类型组成。例如: >>> x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)], ... dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')]) >>> x array([('Rex', 9, 81.), ('Fido', 3, 27.)], dtype=[('name', 'U10'), ('a…
介绍 结构化数组是ndarray,其数据类型是由一系列命名字段 组织的简单数据类型组成。例如: >>> x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)], ... dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')]) >>> x array([('Rex', 9, 81.), ('Fido', 3, 27.)], dtype=[('name', 'U10'), ('a…
字节排序和ndarrays简介 ndarray是一个为内存中的数据提供python数组接口的对象。 经常发生的情况是,要用数组查看的内存与运行Python的计算机的字节顺序不同。 例如,我可能正在使用带有 little-endian CPU 的计算机 - 例如Intel Pentium,但是我已经从一个由 big-endian计算机 编写的文件中加载了一些数据。假设我已经从Sun(big-endian)计算机写入的文件中加载了4个字节。我知道这4个字节代表两个16位整数。在 big-endian 机器上,首先以最高…
另见 numpy.broadcast Numpy中的数组广播 注意 有关广播概念的说明,请参阅此文章 。 术语广播(Broadcasting)描述了 numpy 如何在算术运算期间处理具有不同形状的数组。受某些约束的影响,较小的数组在较大的数组上“广播”,以便它们具有兼容的形状。广播提供了一种矢量化数组操作的方法,以便在C而不是Python中进行循环。它可以在不制作不必要的数据副本的情况下实现这一点,通常导致高效的算法实现。然而,有些情况下广播是一个坏主意,因为它会导致内存使用效率低下,从而减慢计算速度。 NumP…
另见 索引 索引相关API 数组索引是指使用方括号([])来索引数组值。索引有很多选项,它可以为numpy索引提供强大的功能,但是功能会带来一些复杂性和混淆的可能性。本节仅概述了与索引相关的各种选项和问题。除了单个元素索引之外,大多数这些选项的详细信息都可以在相关章节中找到。 赋值与引用 以下大多数示例体现在引用数组中的数据时使用索引。分配给数组时,这些示例也可以正常运行的。有关分配的原理具体示例和说明,请参见最后一节。 单个元素索引 人们期望的是1-D数组的单元素索引。它的工作方式与其他标准Python序列完全相…
使用genfromtxt导入数据 NumPy提供了几个函数来根据表格数据创建数组。我们将重点放在genfromtxt函数上。 In a nutshell, genfromtxt runs two main loops. 第一个循环以字符串序列转换文件的每一行。第二个循环将每个字符串转换为适当的数据类型。这种机制比单一循环慢,但提供了更多的灵活性。特别的, genfromtxt考虑到缺失值的情况, 其他更简单的方法如loadtxt无法做到这点. 注意 举例时,我们将使用以下约定: >>> impor…
另见 数组创建相关API 简介 创建数组有5种常规机制: 从其他Python结构(例如,列表,元组)转换 numpy原生数组的创建(例如,arange、ones、zeros等) 从磁盘读取数组,无论是标准格式还是自定义格式 通过使用字符串或缓冲区从原始字节创建数组 使用特殊库函数(例如,random) 本节不包括复制,连接或以其他方式扩展或改变现有数组的方法。它也不会涵盖创建对象数组或结构化数组。这些都包含在他们自己的章节中。 将Python array_like对象转换为Numpy数组 通常,在Python中排列…
另见 数据类型对象 数组类型之间的转换 NumPy支持比Python更多种类的数字类型。本节显示了哪些可用,以及如何修改数组的数据类型。 支持的原始类型与 C 中的原始类型紧密相关: Numpy 的类型 C 的类型 描述 np.bool bool 存储为字节的布尔值(True或False) np.byte signed char 平台定义 np.ubyte unsigned char 平台定义 np.short short 平台定义 np.ushort unsigned short 平台定义 np.intc int…
数据类型 创建数组 NumPy与输入输出 索引 广播 字节交换 结构化数组 编写自定义数组容器 子类化数组
先决条件 在阅读本教程之前,你应该了解一些Python的基础知识。如果你想复习一下,请回去看看Python教程 。 如果您希望使用本教程中的示例,则还必须在计算机上安装某些软件。有关说明,请参阅https://scipy.org/install.html 。 基础知识 NumPy的主要对象是同构多维数组。它是一个元素表(通常是数字),所有类型都相同,由非负整数元组索引。在NumPy维度中称为 轴 。 例如,3D空间中的点的坐标[1, 2, 1]具有一个轴。该轴有3个元素,所以我们说它的长度为3.在下图所示的例子中,…
什么是 NumPy? NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。 NumPy包的核心是 ndarray 对象。它封装了python原生的同数据类型的 n 维数组,为了保证其性能优良,其中有许多操作都是代码在本地进行编译后执行的。 NumPy数组 和 原生Python Array(数组)之间有几个重要…