NumPy学习笔记(一)前置知识、NumPy简介和环境配置
00 分钟
2024-8-13
2024-10-28
type
status
date
slug
summary
tags
category
icon
password
😀
在如今的科技世界,数据科学、机器学习和工程计算几乎无处不在。而在这些领域,Python 已经成为了最受欢迎的编程语言之一。原因很简单:Python 既容易上手,又拥有强大的库生态系统,能够帮助我们快速解决复杂问题。而在 Python 的众多库中,NumPy 可以说是最基础、最重要的一个。
NumPy 是一个用于高效数值计算的库,它为我们提供了处理大规模数据集和执行各种数值运算的工具和接口。也许你已经用过 Python 的列表和字典,但一旦涉及到复杂的数学运算或大规模数据处理,NumPy 的优势就显现出来了。NumPy 提供了多维数组对象 ndarray,不仅在速度上远超 Python 的内置数据结构,还支持各种矢量化操作——也就是说,你可以对整个数组进行操作,而不必编写复杂的循环代码。
更重要的是,NumPy 不是孤立存在的。许多其他强大的 Python 库,如 Pandas、SciPy、Matplotlib,甚至是深度学习框架 TensorFlow 和 PyTorch,都依赖于 NumPy 进行底层的数值计算。因此,学习 NumPy 不仅仅是为了掌握一项技能,而是为你打开了通向整个 Python 数据科学世界的大门。
在处理大规模数据时,性能是一个关键问题。NumPy 的底层是用 C 语言编写的,因此它在处理大量数据时表现得异常高效。
总之,无论你是想在数据科学、机器学习领域取得进展,还是需要在工程计算中处理复杂的数学问题,NumPy 都是你必不可少的工具。在这份学习笔记中,我将记录下自己学习 NumPy 的过程。我希望这些笔记不仅能帮助我自己更好地理解和应用 NumPy,也能为其他同样在学习这门强大工具的人提供一些有价值的参考。本人水平有限,有误欢迎联系。
 

📝 前置知识

索引和切片

索引是指通过序列中的位置来访问特定元素。在Python中,序列中的元素从0开始编号,也就是第一个元素的索引为0,第二个为1,以此类推。
  • 正向索引:从左到右,索引从0开始。
  • 负向索引:从右到左,索引从-1开始,-1表示最后一个元素,-2表示倒数第二个,以此类推。
切片用于获取序列的一个子集(子序列)。切片语法通常使用 序列[start:end:step],其中:
  • start 是起始索引,包含在切片结果中。
  • end 是结束索引,不包含在切片结果中。
  • step 是步长,表示每次跳跃的元素数量,默认为1。
示例

推导式

在Python中,推导式(Comprehensions)是创建列表、集合或字典的简洁方式。它们使得代码更加紧凑且易于阅读。推导式包括列表推导式、集合推导式和字典推导式。以下是对它们的详细讲解。

1. 列表推导式(List Comprehensions)

列表推导式用于通过一行表达式快速生成一个新列表。其基本语法如下:
  • 表达式:生成列表元素的规则,可以是现有元素的操作或变换。
  • 元素:从可迭代对象中提取的单个元素。
  • 可迭代对象:如列表、元组、字符串等。
  • 条件(可选):对元素进行过滤的条件,只有满足条件的元素才会被包含在结果中。
示例

2. 集合推导式(Set Comprehensions)

集合推导式与列表推导式类似,但生成的是集合(set),集合中不允许有重复元素。其语法与列表推导式几乎相同,只是使用花括号 {} 来定义集合。
示例

3. 字典推导式(Dictionary Comprehensions)

字典推导式用于生成一个新的字典。其语法如下:
  • :字典中的键,通常来自可迭代对象中的元素或经过变换的元素。
  • :与键对应的值,通常也是经过某种运算或变换后的结果。
示例

filter()map()reduce() 这三个函数的用法

1. filter() 函数

filter() 函数用于过滤可迭代对象中的元素,返回一个只包含满足特定条件(即函数返回 True)的元素的迭代器。
语法
  • function:用于判断的函数,返回值为布尔类型 (TrueFalse)。
  • iterable:需要过滤的可迭代对象。
示例

2. map() 函数

map() 函数用于将一个函数应用到可迭代对象的每个元素上,返回一个包含函数返回值的新迭代器。
语法
  • function:用于变换的函数,接受一个参数并返回一个新值。
  • iterable:需要变换的可迭代对象。
示例

3. reduce() 函数

reduce() 函数用于将可迭代对象的元素逐步累积成一个单一的结果。与 map()filter() 不同,reduce()functools 模块的一部分,因此在使用前需要导入。
语法
  • function:用于累积的函数,接受两个参数,第一个是累积值,第二个是当前元素。
  • iterable:需要累积的可迭代对象。
  • initializer(可选):初始值,默认情况下为 iterable 的第一个元素。
示例

📝 环境搭建

下载并安装Anaconda

  1. 下载Anaconda
      • 前往Anaconda官网,下载适合你操作系统的Anaconda安装包。
  1. 安装Anaconda
      • 在Windows上,双击下载的.exe文件并按照提示完成安装。
      • 在macOS和Linux上,运行以下命令安装:
        • 按照安装向导的指示进行安装。

    开始学习

    • 启动Jupyter Notebook: 使用以下命令启动Jupyter Notebook,方便地编写和测试NumPy代码:
      • 编写第一个NumPy程序: 在Jupyter Notebook中新建一个笔记本,然后输入并运行以下代码:
         
        上一篇
        NumPy学习笔记(二)一维数组、NumPy的数据类型、常见的一维数组生成函数
        下一篇
        Conda学习笔记