Python入门进阶讲解

一.基础语法与核心概念

1.Lambda

匿名函数,语法简洁,用于创建简单的、一次性使用的函数,形式为 lambda 参数: 表达式 ,比如 lambda x: x * 2 可快速定义一个实现数值翻倍的函数,常配合 map、filter 等函数式编程工具使用。

2.迭代器

遍历可迭代对象(如列表、元组、字典等)元素的过程,可通过 for 循环实现,像 for item in list_data: ,也涉及迭代器(iterator )和生成器(generator )概念,生成器用 yield 关键字创建,能节省内存,按需生成数据 。

在 Python 中,迭代器是实现迭代器协议的对象,它包含方法 __iter__() 和 __next__()。

for 循环实际上创建了一个迭代器对象,并为每个循环执行 next() 方法。

迭代器的创建方法
若要将某个类打造为迭代器,这个类必须实现 __iter__() 和 __next__() 这两个特殊方法,具体要求如下:(先熟练掌握面向对象编程)

__iter__() 方法:
其主要作用是对迭代器进行初始化。
该方法一定要返回迭代器对象自身。
__next__() 方法:
此方法的任务是返回序列里的下一个元素。
当序列中的元素全部返回完毕后,要抛出 StopIteration 异常。

所有类都有名为 __init__() 的函数,它允许您在创建对象时进行一些初始化。

__iter__() 方法的作用相似,您可以执行操作(初始化等),但必须始终返回迭代器对象本身。

__next__() 方法也允许您执行操作,并且必须返回序列中的下一个项目。

StopIteration 异常

next()语句过多,或者for循环太长,就写stoplteration停止异常处理。

在 __next__() 方法中,如果迭代完成指定的次数,我们可以添加一个终止条件来引发错误。

当 self.a 大于 20 时,抛出 StopIteration 异常,告知迭代已经结束,这是 Python 迭代器停止迭代的标准方式。

3.多态

属于面向对象编程特性,不同类的对象对同一方法调用呈现不同行为,比如子类重写父类方法,调用时根据对象实际类型执行对应实现,让程序更灵活、可扩展 。

函数多态:一个可用于不同对象的 Python 函数的例子是 len() 函数。

类的多态

继承类多态

继承的类,即使是pass空的,也覆盖了pf()方法

4.作用域

指变量能被访问的代码范围,分局部作用域(函数内定义的变量,函数外一般无法访问 )、全局作用域(模块级定义的变量,模块内多数地方可访问 )等,理解它可避免变量名冲突,合理管理变量生命周期 。 

局部作用域:在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用。

全局作用域:在 Python 代码主体中创建的变量是全局变量,属于全局作用域。全局变量在任何范围(全局和局部)中可用。

命名变量:如果在函数内部和外部操作同名变量,Python 会将它们视为两个单独的变量,一个在全局范围内可用(在函数外部),而一个在局部范围内可用(在函数内部)。

Global 关键字:如果您需要创建一个全局变量,但被卡在本地作用域内,则可以使用 global 关键字。global 关键字使变量成为全局变量。

5.Try Except

用于异常处理,try 块放可能出错的代码,except 块捕获并处理异常(如 except ValueError: 处理值错误异常 ),还可搭配 else(try 块无异常时执行 )、finally(无论有无异常都会执行,常用来做资源清理等 ),增强程序健壮性 。

try 块允许您测试代码块以查找错误。

except 块允许您处理错误。

finally 块允许您执行代码,无论 try 和 except 块的结果如何。

多个异常:您可以根据需要定义任意数量的 exception 块,例如,假如您要为特殊类型的错误执行特殊代码块。

二.数据结构与数据处理类

1.数组

通常可理解为列表(list ,如 [1, 2, 3] ,能动态增删元素 ),也有 array 模块的数组(更接近 C 语言数组,存储同类型数据,节省空间 ),用于有序存储、操作一组数据 。

2.JSON

json 模块用于处理 JSON 格式数据,json.dumps() 可将 Python 对象(如字典、列表 )转成 JSON 字符串,json.loads() 能把 JSON 字符串解析回 Python 对象,方便与其他系统进行数据交互,比如网络请求传输数据 。JSON 是用 JavaScript 对象表示法(JavaScript object notation)编写的文本。

Python 对象都可以转换为 JSON 字符串。

3.字符串格式化

多种方式实现,如 % 格式化(print("姓名:%s,年龄:%d" % ("张三", 20)) )、format 方法("姓名:{},年龄:{}".format("张三", 20) )、f - string(Python 3.6+ ,name = "张三"; age = 20; print(f"姓名:{name},年龄:{age}") ),用于按需求拼接、展示字符串内容 。

为了确保字符串按预期显示,我们可以使用 format() 方法对结果进行格式化。

三.面向对象编程类

1.类/对象

类是创建对象的蓝图,用 class 定义,包含属性(数据 )和方法(函数 ),对象是类的实例,通过 类名() 创建,如 class Person: def __init__(self, name): self.name = name; p = Person("张三") ,是面向对象编程的基础 。

在 Python 中,__init__() 是一个特殊的方法(也称为构造函数),用于在创建类的实例时初始化对象的属性。它是类定义中的核心组成部分,负责设置对象的初始状态。
核心作用
当你使用 ClassName() 创建一个对象时,Python 会自动调用 __init__() 方法,并将新创建的对象作为第一个参数(通常命名为 self)传入。通过 self,你可以为对象绑定属性(如姓名、年龄等),这些属性将在对象的整个生命周期内存在。

对象方法,对象也可以包含方法。对象中的方法是属于该对象的函数。

self 参数是对类的当前实例的引用,用于访问属于该类的变量。

2.继承

子类可继承父类的属性和方法,使用 class 子类名(父类名): 定义,子类能重写父类方法,也可扩展新功能,实现代码复用,比如 class Student(Person): ,让 Student 类复用 Person 类已有逻辑并定制自身特性 。

继承允许我们定义继承另一个类的所有方法和属性的类。

父类是继承的类,也称为基类。

子类是从另一个类继承的类,也称为派生类。

我们已经创建了一个子类,它继承了父类的属性和方法。当然子类也可以增加__init__函数。

每次使用类创建新对象时,都会自动调用 __init__() 函数。

在子类中添加一个与父类中的函数同名的方法,则将覆盖父方法的继承。

四.模块与工具类

1.模块

是包含 Python 定义和语句的文件(.py ),可通过 import 导入,如 import math 导入数学模块使用其函数(math.sqrt(4) 计算平方根 ),也可自定义模块并在其他脚本中导入,便于代码组织和复用 。

由于模块只能用.py文件后缀,所以我们使用pycharm来熟悉。

修改模块文件名,让其符合 Python 命名规范。Python 模块命名规范:

由字母、数字、下划线组成;
不能以数字开头;
一般采用小写字母,多个单词可用下划线连接(如 my_module.py )。

先创建模块文件,名字随意,我以abcd.py为例,然后写一个加法内置函数。

再新建一个文件,调用模块。

注释:如果使用模块中的函数时,请使用以下语法:

module_name.function_name

变量也可以调用,以下面的字典为例,as创建别名,方便调用

直接用别名方便调用

from导入模块部件和dir()函数列出模块所有函数

2.PIP

Python 的包管理工具,用于安装、升级、卸载第三方库,比如 pip install requests 安装 requests 库,pip list 查看已安装库列表,方便扩展 Python 功能,利用丰富的第三方资源 。

如果尚未安装 PIP,可以从此页面下载并安装:https://pypi.org/project/pip/

查找包:在 https://pypi.org/,您可以找到更多的包。

删除包:请使用 uninstall 命令来删除包。回复y同意删除

列出包:请使用 list 命令列出系统上安装的所有软件包。

3.命令输入

可通过 input() 函数实现,如 user_input = input("请输入内容:") ,获取用户在控制台的输入,用于交互性程序,让程序根据用户输入执行不同逻辑 。

Python 3.6 使用 input() 方法。Python 2.7 使用 raw_input() 方法。

五.特定功能类

1.日期

datetime 模块处理日期和时间,可创建日期对象(datetime.datetime(2025, 7, 2) )、格式化输出(dt.strftime("%Y-%m-%d %H:%M:%S") )、进行时间运算(如两个日期相减得到时间差 ),满足程序中对时间处理的需求 。

以下是整理后的日期时间格式化代码表格:

格式代码含义描述示例(英文/中文)
日期相关
%Y4 位年份2023
%y2 位年份(00-99)23
%m2 位月份(01-12)05
%B完整月份名称(本地化)May / 五月
%b缩写月份名称(本地化)May / 五
%d2 位日期(01-31)08
%j年内天数(001-366)128
%U年内周数(周日为一周起点,00-53)18
%W年内周数(周一为一周起点,00-53)18
%w周内天数(0=周日,6=周六)1(表示周一)
时间相关
%H24 小时制小时(00-23)14
%I12 小时制小时(01-12)02
%M2 位分钟(00-59)35
%S2 位秒数(00-59)42
%f微秒(000000-999999)123456
%p上/下午标识(本地化)AM、PM / 上午、下午
日期时间组合
%c本地化日期时间Wed May 08 14:35:42 2023(英文)
%x本地化日期05/08/23(英文)、2023-05-08(中文)
%X本地化时间14:35:42
时区与其他
%Z时区名称(若存在)UTC、CST
%z时区偏移(±HHMM)+0800(东八区)
%%转义%符号%

表格已按类别分组,并标注中英文示例差异。适用于Python的strftimestrptime等场景。

2.数学

math 模块提供众多数学相关函数,像三角函数(math.sin() )、对数函数(math.log() )、常数(math.pi )等,cmath 模块用于复数数学运算,助力进行数值计算相关任务 。

min() 和 max() 函数可用于查找可迭代对象中的最低或最高值。abs()绝对值。pow(x, y) 函数返回 x 的 y 次幂(xy)的值。

Python 的 math 模块提供了丰富的数学函数,用于执行基本和高级数学运算。这些函数涵盖三角函数、对数函数、幂运算、取整操作等。以下表格列出了 math 模块的所有方法(基于 Python 3.10 标准库),包括方法名称、描述、参数和返回值。每个描述中涉及的数学表达式已使用 $...$ 格式包裹以确保清晰。

注意:

  • 参数类型:x, y 等通常为浮点数(float),但某些函数支持整数(int)。
  • 返回值类型:大多数方法返回 float,但部分返回整数(int)或元组。
  • 对于可选参数,使用方括号 [] 表示,例如 [base]
  • 本表格按函数类别分组,便于查阅。
方法名称描述参数返回值
基本运算函数
math.sqrt(x)计算 $x$ 的平方根($x \geq 0$)x: floatfloat
math.pow(x, y)计算 $x$ 的 $y$ 次幂($x^y$)x: float, y: floatfloat
math.exp(x)计算 $e$ 的 $x$ 次幂($e^x$)x: floatfloat
math.expm1(x)计算 $e^x - 1$(用于小 $x$ 的高精度)x: floatfloat
math.log(x[, base])计算对数(默认自然对数 $\ln(x)$;可选底数 $\log_{\text{base}}(x)$)x: float, [base]: floatfloat
math.log10(x)计算以 10 为底的对数($\log_{10}(x)$)x: floatfloat
math.log2(x)计算以 2 为底的对数($\log_{2}(x)$)x: floatfloat
math.log1p(x)计算 $\ln(1 + x)$(用于小 $x$ 的高精度)x: floatfloat
math.fabs(x)计算 $x$ 的绝对值($x$)
math.fmod(x, y)计算浮点数余数($x \mod y$)x: float, y: floatfloat
math.fsum(iterable)精确求和浮点数序列(减少累积误差)iterable: iterable[float]float
math.prod(iterable, *, start=1)计算序列的乘积($\prod \text{iterable} \times \text{start}$,Python 3.8+)iterable: iterable[float], start: float = 1float
math.hypot(*coordinates)计算欧几里得范数($\sqrt{\sum coordinates_i^2}$)*coordinates: floatfloat
math.dist(p, q)计算点 $p$ 和 $q$ 的欧几里得距离(Python 3.8+)p: tuple[float, ...], q: tuple[float, ...]float
三角函数(输入为弧度)
math.sin(x)计算 $x$ 的正弦值($\sin(x)$)x: floatfloat
math.cos(x)计算 $x$ 的余弦值($\cos(x)$)x: floatfloat
math.tan(x)计算 $x$ 的正切值($\tan(x)$)x: floatfloat
math.asin(x)计算 $x$ 的反正弦值($\arcsin(x)$,$-1 \leq x \leq 1$)x: floatfloat
math.acos(x)计算 $x$ 的反余弦值($\arccos(x)$,$-1 \leq x \leq 1$)x: floatfloat
math.atan(x)计算 $x$ 的反正切值($\arctan(x)$)x: floatfloat
math.atan2(y, x)计算 $\arctan(y/x)$(考虑象限)y: float, x: floatfloat
双曲函数
math.sinh(x)计算 $x$ 的双曲正弦值($\sinh(x)$)x: floatfloat
math.cosh(x)计算 $x$ 的双曲余弦值($\cosh(x)$)x: floatfloat
math.tanh(x)计算 $x$ 的双曲正切值($\tanh(x)$)x: floatfloat
math.asinh(x)计算 $x$ 的反双曲正弦值($\text{arsinh}(x)$)x: floatfloat
math.acosh(x)计算 $x$ 的反双曲余弦值($\text{arcosh}(x)$,$x \geq 1$)x: floatfloat
math.atanh(x)计算 $x$ 的反双曲正切值($\text{artanh}(x)$,$-1 < x < 1$)x: floatfloat
角度和弧度转换
math.degrees(x)将弧度 $x$ 转换为角度x: floatfloat
math.radians(x)将角度 $x$ 转换为弧度x: floatfloat
取整和离散函数
math.ceil(x)向上取整(最小整数 $\geq x$)x: floatint
math.floor(x)向下取整(最大整数 $\leq x$)x: floatint
math.trunc(x)截断取整(向零取整)x: floatint
math.modf(x)返回 $x$ 的小数部分和整数部分(作为元组)x: floattuple[float, float]
math.factorial(x)计算 $x$ 的阶乘($x!$,$x$ 为非负整数)x: intint
math.gcd(a, b)计算 $a$ 和 $b$ 的最大公约数a: int, b: intint
math.isqrt(n)计算 $n$ 的整数平方根($\lfloor \sqrt{n} \rfloor$,Python 3.8+)n: intint
math.comb(n, k)计算组合数 $\binom{n}{k}$(Python 3.8+)n: int, k: intint
math.perm(n, k=None)计算排列数 $P(n, k)$($k$ 可选,默认 $k=n$,Python 3.8+)n: int, [k]: intint
特殊函数
math.erf(x)计算误差函数 $\text{erf}(x)$x: floatfloat
math.erfc(x)计算互补误差函数 $\text{erfc}(x) = 1 - \text{erf}(x)$x: floatfloat
math.gamma(x)计算 Gamma 函数 $\Gamma(x)$x: floatfloat
math.lgamma(x)计算 Gamma 函数绝对值的自然对数 $\ln(\Gamma(x))$
浮点数操作和检查
math.frexp(x)将 $x$ 分解为尾数 $m$ 和指数 $e$($x = m \times 2^e$)x: floattuple[float, int]
math.ldexp(x, i)计算 $x \times 2^i$x: float, i: intfloat
math.nextafter(x, y)返回 $x$ 向 $y$ 方向的下一个浮点数x: float, y: floatfloat
math.remainder(x, y)计算 IEEE 754 余数($x - n \times y$,$n$ 为最接近整数,Python 3.7+)x: float, y: floatfloat
math.copysign(x, y)返回 $x$ 的绝对值,但符号与 $y$ 相同x: float, y: floatfloat
math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0)检查 $a$ 和 $b$ 是否接近(基于相对和绝对容差)a: float, b: float, rel_tol: float, abs_tol: floatbool
math.isfinite(x)检查 $x$ 是否为有限数(非无穷或 NaN)x: floatbool
math.isinf(x)检查 $x$ 是否为无穷大x: floatbool
math.isnan(x)检查 $x$ 是否为 NaN(非数字)x: floatbool

3.RegEx

正则表达式借助 re 模块实现,用于字符串的模式匹配、查找、替换等操作,比如 re.search(r'\d+', "abc123def") 查找字符串中的数字,可高效处理复杂的文本筛选、校验场景,像验证邮箱格式、提取特定格式内容等 。

常见正则表达式元字符表格

元字符描述示例
.匹配任意单个字符a.c 匹配 "abc", "a1c"
^匹配行首^a 匹配 "a"开头的行
$匹配行尾a$ 匹配 "a"结尾的行
*匹配0次或多次ab* 匹配 "a", "abbbb"
+匹配1次或多次ab+ 匹配 "ab", "abbb"
?匹配0次或1次ab? 匹配 "a", "ab"
\d匹配数字\d 匹配 "0"-"9"
\w匹配字母数字下划线\w 匹配 "a-z","0-9","_"
\s匹配空白字符\s 匹配空格,tab等
[]匹配括号内任一字符[abc] 匹配 "a","b","c"
[^]不匹配括号内任一字符[^abc] 匹配非"a","b","c"
``或操作
()分组(ab)+ 匹配 "ab","abab"
{n}匹配n次a{2} 匹配 "aa"
{n,}匹配至少n次a{2,} 匹配 "aa","aaa"
{n,m}匹配n到m次a{2,4} 匹配 "aa","aaa","aaaa"

六.文件处理

1.文件打开

一、核心工具:open () 函数
open() 函数得给它两个关键信息:

文件名:就是你要操作的那个文件叫啥,比如 test.txt ,得确保 Python 能找到它(知道在哪个文件夹里,或者用正确路径)。
模式:决定以啥方式打开文件,不同方式能干不同事儿,就像你用不同工具打开盒子,有的只能看,有的能往里面加东西,有的会把原来东西清掉重新放 。
二、四种主要 “打开方式”(模式)
“r”(读取 - 默认)
就像你想打开一本书看内容,用这模式。文件得存在,不然 Python 就报错,说找不到文件。打开后,你能读里面的文字(内容),但不能直接改 。比如你打开小说文本,看看主角干了啥。
“a”(追加)
好比你有个日记本,想接着写点新事儿,用这模式。文件不存在的话,Python 会自动创建一个新的。打开后,新写的内容会加在文件原来内容的末尾,不会把之前写的覆盖掉 。像记每日心情,每天接着在后面写。
“w”(写入)
这就像你要重新写一篇作文,用新内容替换原来的。文件不存在会创建,要是文件本来有内容,打开后原来的内容会被清空,然后写入新东西 。比如你要整理新的旅行攻略,把旧的攻略内容全换成新的。
“x”(创建)
专门用来新建文件的,而且保证是全新的。如果要创建的文件已经存在了,Python 就报错,不让你创建,避免不小心把已有的文件覆盖掉 。就像你要新建一个独一无二的 “秘密笔记” 文件,确保之前没有重名的。
三、文本还是二进制?额外可选模式
“t”(文本 - 默认):平常处理文字内容,像小说、日记、代码文件这些,用这模式,Python 会把内容当作文本处理,能看懂文字啥意思 。
“b”(二进制):处理图片、音乐、视频这些文件时用。因为这些文件不是普通文字,是一堆二进制数据(电脑能懂的 0 和 1 组合),用这模式才能正确读写,不然就会乱套,读不出正常内容 。比如你想复制一张图片,就得用二进制模式打开它,再用二进制模式写入新文件 。

2.文件读取

先随便写一个文本文件。

读取文件。

3.文件写入\创建

写入已有文件:如需写入已有的文件,必须向 open() 函数添加参数:

"a" - 追加 - 会追加到文件的末尾,"w" - 写入 - 会覆盖任何已有的内容。

覆盖文件写文本。

创建新文件

如需在 Python 中创建新文件,请使用 open() 方法,并使用以下参数之一:

"x" - 创建 - 将创建一个文件,如果文件存在则返回错误
"a" - 追加 - 如果指定的文件不存在,将创建一个文件
"w" - 写入 - 如果指定的文件不存在,将创建一个文件

4.文件删除

删除文件:如需删除文件,必须导入 OS 模块,并运行其 os.remove() 函数:

七.四大标准库

1.NumPy

简介:NumPy(Numerical Python)是 Python 科学计算的基础库,提供了高性能的多维数组对象 ndarray ,以及大量用于对数组进行操作的函数。
核心功能:
强大的数组对象:ndarray 支持高效的存储和快速的数值计算,相比 Python 内置的列表,占用空间更小,计算速度更快。例如,在进行向量或矩阵运算时,ndarray 可以大幅提升计算效率。
丰富的数学函数:涵盖了三角函数、指数函数、对数函数等各种数学运算函数,能直接对数组进行操作,无需编写复杂的循环。
广播机制:使得不同形状的数组之间也能进行运算,大大简化了代码的编写。比如,一个标量可以和一个数组进行运算,数组中的每个元素都会与该标量进行相应的操作。
应用场景:广泛应用于机器学习、深度学习、数据分析、物理模拟等领域,是众多科学计算库的基础,像 SciPy、Pandas 等库都依赖于 NumPy 进行高效的数值计算。

以下是NumPy常用算法的分类表格整理:

数学运算

算法类别具体函数示例功能描述
基础算术add(), subtract(), multiply(), divide()四则运算
指数对数exp(), log(), log10()指数与对数计算
三角函数sin(), cos(), tan()三角函数运算

统计计算

算法类别具体函数示例功能描述
基础统计mean(), median(), std()均值/中位数/标准差
极值统计amin(), amax(), ptp()最小值/最大值/极差
百分位percentile()计算分位数

线性代数

算法类别具体函数示例功能描述
矩阵操作dot(), matmul()矩阵乘法
分解运算linalg.svd(), linalg.qr()奇异值分解/QR分解
特征值linalg.eig()计算特征值与特征向量

数组操作

算法类别具体函数示例功能描述
形状操作reshape(), transpose()改变数组形状
排序筛选sort(), argsort()排序与索引排序
集合操作unique(), intersect1d()唯一化/交集运算

表格内容基于NumPy官方文档功能分类整理,实际使用时需结合具体参数配置。

2.Pandas

简介:Pandas 是一个用于数据处理和分析的强大库,提供了数据结构 Series(一维数组)和 DataFrame(二维表格型数据结构),方便用户进行数据的清洗、转换、分析和可视化。
核心功能:
数据结构:Series 可以看作是带有标签的一维数组,常用于存储和处理一列数据;DataFrame 类似于 Excel 表格,能够方便地处理结构化数据,每一列可以是不同的数据类型。
数据读取与写入:支持读取多种格式的数据,如 CSV、Excel、SQL 数据库等,也能将处理后的数据写回这些格式。
数据清洗与处理:提供了丰富的函数用于处理缺失值、重复值,以及数据的分组、聚合、透视等操作。例如,使用 dropna() 方法可以快速删除包含缺失值的行或列。
时间序列分析:对于时间序列数据有很好的支持,能够方便地进行时间序列的重采样、频率转换等操作。
应用场景:在数据分析、数据挖掘、商业智能等领域被广泛使用,是处理结构化数据的首选工具,能够帮助用户快速地从大量数据中提取有价值的信息。

Pandas常用算法表格

算法类型方法名功能描述示例代码片段
数据清洗dropna()删除包含缺失值的行/列df.dropna(axis=0)
fillna()填充缺失值df.fillna(value=0)
数据筛选loc[]标签索引选择df.loc[df['col'] > 10]
iloc[]位置索引选择df.iloc[0:5, 1:3]
统计计算mean()计算平均值df['col'].mean()
groupby()分组聚合df.groupby('key').sum()
排序sort_values()按值排序df.sort_values(by='col')
合并merge()数据库风格的合并pd.merge(df1, df2, on='key')
时间处理to_datetime()转换为时间格式pd.to_datetime(df['date'])

机器学习相关算法

算法类型方法名应用场景示例代码片段
预处理StandardScaler()数据标准化from sklearn.preprocessing import StandardScaler
分类train_test_split()数据集分割from sklearn.model_selection import train_test_split
评估accuracy_score()分类准确率计算from sklearn.metrics import accuracy_score

表格内容可直接复制使用,所有方法均为Pandas或与其紧密集成的sklearn方法。

3.SciPy

简介:SciPy 是基于 NumPy 构建的用于科学和工程计算的库,它在 NumPy 的基础上,提供了更高级的算法和工具,涵盖了优化、线性代数、积分、插值、特殊函数、信号处理等多个领域。
核心功能:
优化算法:包含了各种优化算法,如最小化、最大化问题的求解,可用于求解数学规划、机器学习中的参数优化等问题。
线性代数:扩展了 NumPy 的线性代数功能,提供了更丰富的矩阵分解、特征值计算等函数,适用于求解线性方程组、主成分分析等。
积分与插值:能够进行数值积分和插值计算,在科学研究和工程计算中,用于处理实验数据的拟合、函数的数值积分等。
信号处理:提供了滤波、频谱分析等信号处理工具,常用于音频、图像等信号的处理。
应用场景:在科学研究、工程设计、机器学习算法实现等场景中发挥着重要作用,帮助科研人员和工程师解决各种复杂的计算问题。

以下是Scipy中常用算法的分类表格(基于模块和功能整理):

优化算法(scipy.optimize)

算法名称功能描述典型函数
BFGS拟牛顿法优化fmin_bfgs
L-BFGS-B内存受限的BFGSfmin_l_bfgs_b
Nelder-Mead单纯形法fmin
COBYLA约束优化fmin_cobyla
Dual Annealing全局优化(模拟退火)dual_annealing

线性代数(scipy.linalg)

算法名称功能描述典型函数
LU分解矩阵分解lu
QR分解正交分解qr
SVD奇异值分解svd
特征值分解对称矩阵分解eigh

插值(scipy.interpolate)

算法名称功能描述典型函数
线性插值分段线性拟合interp1d
样条插值平滑曲线拟合UnivariateSpline
RBF径向基函数插值Rbf

信号处理(scipy.signal)

算法名称功能描述典型函数
FIR滤波有限脉冲响应滤波firwin
IIR滤波无限脉冲响应滤波iirfilter
频谱分析快速傅里叶变换spectrogram

表格内容基于Scipy 1.11版本的核心功能整理,实际使用时需结合具体参数配置。

4.Matplotlib

简介:Matplotlib 是 Python 最常用的数据可视化库,它提供了一套和 MATLAB 类似的绘图 API ,能够创建各种高质量的静态、动态、交互式图表,如折线图、柱状图、散点图、饼图等。
核心功能:
基本绘图:通过简单的函数调用,就可以绘制各种常见的图表,并且可以对图表的颜色、线条样式、字体等进行详细的定制。例如,使用 plot() 函数绘制折线图,scatter() 函数绘制散点图。
多子图布局:支持在一个图形中创建多个子图,方便进行数据的对比和分析。
3D 绘图:除了 2D 绘图,还提供了一定的 3D 绘图功能,可以绘制三维曲面图、散点图等。
动画制作:可以创建动态的图表,用于展示数据的变化过程。
应用场景:在数据分析、数据报告、学术论文、商业展示等领域都有着广泛的应用,能够将数据以直观、美观的方式呈现出来,帮助用户更好地理解和传达数据中的信息 。

Matplotlib 常用算法及功能表格

算法/功能描述相关函数/类
折线图绘制连续数据点之间的连线,用于趋势分析。plt.plot()
散点图显示数据点的分布,适用于相关性分析。plt.scatter()
柱状图比较不同类别的数值大小,支持垂直或水平方向。plt.bar(), plt.barh()
直方图统计数据的频率分布,展示数据分布规律。plt.hist()
饼图展示各部分占整体的比例,适用于占比分析。plt.pie()
箱线图显示数据分散情况(四分位数、离群点等)。plt.boxplot()
等高线图用等高线表示三维数据的二维投影,常用于科学计算。plt.contour(), plt.contourf()
3D绘图绘制三维曲面、散点或线框图,需导入 mpl_toolkits.mplot3dAxes3D.plot_surface(), Axes3D.scatter()
图像显示加载和显示数组形式的图像数据(如 NumPy 数组)。plt.imshow()
颜色映射通过色条(colorbar)关联数据值与颜色。plt.colorbar()
文本标注在图形中添加文字说明或箭头标注。plt.text(), plt.annotate()
子图布局创建多子图网格,灵活排列图形。plt.subplots(), GridSpec
坐标轴调整设置坐标轴范围、刻度、标签或对数缩放。plt.xlim(), plt.xticks(), plt.xscale()
图例与标题添加图例区分数据系列,设置标题和坐标轴标签。plt.legend(), plt.title(), plt.xlabel()
动画生成动态变化的效果,需使用 FuncAnimation 类。animation.FuncAnimation()

此表格覆盖了 Matplotlib 的核心绘图算法和功能,适用于大多数数据可视化场景。如需更高级的定制,可参考官方文档或结合 NumPy、Pandas 进行数据处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值