《Python数据分析》一第2章 NumPy数组2.1 NumPy数组对象

简介:

本节书摘来自异步社区《Python数据分析》一书中的第2章,第2.1节,作者【印尼】Ivan Idris,更多章节内容可以访问云栖社区“异步社区”公众号查看

第2章 NumPy数组

Python数据分析
在前面部分,我们已经安装了NumPy和几个关键Python程序库,并动手编写了一些代码。在本章中,我们将正式步入NumPy数组的世界,带领大家一起学习NumPy和数组的知识。阅读本章后,你会对NumPy数组及其相关函数有个基本了解。

本章涉及的主题如下所示。

  • 数据类型。
  • 数组类型。
  • 类型转换。
  • 创建数组。
  • 索引。
  • 花式索引。
  • 切片(Slicing)。
  • 处理数组的形状。

2.1 NumPy数组对象

NumPy中的多维数组称为ndarray,它有两个组成部分。

  • 数据本身。
  • 描述数据的元数据。

在数组的处理过程中,原始信息不受影响,变化的只是元数据而已。

在之前的章节中,我们曾经用arange()函数来生成数组。实际上,那是用来存放一组数值的一维数组,这里的ndarray则可以具有一个以上的维度。

NumPy数组的优势
NumPy数组通常是由相同种类的元素组成的,即数组中的数据项的类型必须一致。NumPy数组元素类型一致的好处是:由于知道数组元素的类型相同,所以能轻松确定存储数组所需空间的大小。同时,NumPy数组还能够运用向量化运算来处理整个数组;而完成同样的任务,Python的列表则通常必须借助循环语句遍历列表,并对逐个元素进行相应的处理。此外,NumPy使用了优化过的C API,所以运算速度格外快。

NumPy数组的索引方法与Python类似,下标从0开始。NumPy数组的数据类型由特殊的对象指定,本章后面的部分将对这些对象进行详细介绍。

今后,我们会经常利用arange()子例程来建立数组,该函数取自本书附带的arrayattributes.py文件。本章中的代码片断大都取自IPython会话。注意,IPython启动时会自动导入NumPy库。下面代码展示了如何获得数组的数据类型:

In: a = arange(5)
In: a.dtype
Out: dtype('int64')

以上数组的数据类型为int64(至少在作者的电脑上是这样的),不过,如果你的Python为32位版本的话,得到的结果将是int32。无论上面哪一种情况,都是在处理整型变量(64位或者32位)。对于数组,除了要知道数据类型外,还要注意其形状,这一点非常重要。在第1章“Python程序库入门”中,我们曾经举例说明向量(一维NumPy数组)的创建方法。数学家会经常用到向量,但对我们来说,最常用的却是更高维度的对象。下面来看刚刚生成的那个向量的形状:

In: a
Out: array([0, 1, 2, 3, 4])
In: a.shape
Out: (5,)

如你所见,该向量有5个元素,它们的值分别是从0到4。该数组的shape属性是一个元组(就本例而言,这是一个单元素元组),存放的是数组在每一个维度的长度。

相关文章
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【10月更文挑战第42天】本文是一篇技术性文章,旨在为初学者提供一份关于如何使用Python进行数据分析的入门指南。我们将从安装必要的工具开始,然后逐步介绍如何导入数据、处理数据、进行数据可视化以及建立预测模型。本文的目标是帮助读者理解数据分析的基本步骤和方法,并通过实际的代码示例来加深理解。
61 3
|
13天前
|
计算机视觉 Python
PIL图像转换为Numpy数组:技术与案例详解
本文介绍了如何将PIL图像转换为Numpy数组,以便利用Numpy进行数学运算和向量化操作。首先简要介绍了PIL和Numpy的基本功能,然后详细说明了转换过程,包括导入库、打开图像文件、使用`np.array()`或`np.asarray()`函数进行转换,并通过打印数组形状验证转换结果。最后,通过裁剪、旋转和缩放等案例展示了转换后的应用,以及如何将Numpy数组转换回PIL图像。此外,还介绍了处理base64编码图像的完整流程。
29 4
|
2月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
95 4
数据分析的 10 个最佳 Python 库
|
15天前
|
存储 数据处理 Python
Python如何显示对象的某个属性的所有值
本文介绍了如何在Python中使用`getattr`和`hasattr`函数来访问和检查对象的属性。通过这些工具,可以轻松遍历对象列表并提取特定属性的所有值,适用于数据处理和分析任务。示例包括获取对象列表中所有书籍的作者和检查动物对象的名称属性。
25 2
|
29天前
|
缓存 监控 算法
Python内存管理:掌握对象的生命周期与垃圾回收机制####
本文深入探讨了Python中的内存管理机制,特别是对象的生命周期和垃圾回收过程。通过理解引用计数、标记-清除及分代收集等核心概念,帮助开发者优化程序性能,避免内存泄漏。 ####
41 3
|
2月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
2月前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
2月前
|
数据采集 存储 数据可视化
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
|
2月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。