Extending Python with Packages and APIs

Extending Python with Packages and APIs

Using functions from a local file

导入函数的方式:
1、将整个模块导入,然后通过模块名加点号的方式来访问其中的函数。也可以在第一行末尾加as,用别名。

1
2
3
4
import math

result = math.sqrt(16) # 调用math模块中的sqrt函数
print(result) # 输出 4.0

2、只导入需要的特定函数。

1
2
3
4
from math import sqrt

result = sqrt(16)
print(result)

3、导入模块中的所有函数和变量。

1
2
3
4
from math import *

result = sqrt(16)
print(result)

Built-in packages

  • module模块 是最小的代码单元。
  • package包 是多个模块的集合,用于组织代码。
  • library库 是一个更广泛的概念,可以指单个模块、多个模块或一个包,通常提供特定的功能。

math 库

  • 主要功能: 提供了大量的数学函数,用于进行基本的数学运算。
  • 常用函数:
    • sqrt(x):计算 x 的平方根。
    • pow(x, y):计算 x 的 y 次方。
    • sin(x)cos(x)tan(x):三角函数。
    • exp(x):计算 e 的 x 次方。
    • log(x)log10(x):自然对数和以 10 为底的对数。
    • ceil(x):向上取整。
    • floor(x):向下取整。
    • radians(degrees):将角度转换为弧度。
    • degrees(radians):将弧度转换为角度。

statistics 库

  • 主要功能: 提供了计算各种统计数据的函数。
  • 常用函数:
    • mean(data):计算数据的平均值。
    • median(data):计算数据的中位数。
    • mode(data):计算数据的众数。
    • variance(data):计算数据的方差。
    • stdev(data):计算数据的标准差。
    • pvariance(data):计算总体方差。
    • pstdev(data):计算总体标准差。

random 库

  • 主要功能: 用于生成各种随机数。
  • 常用函数:
    • random():生成 [0.0, 1.0) 之间的随机浮点数。
    • randint(a, b):生成 [a, b] 之间的随机整数。
    • uniform(a, b):生成 [a, b) 之间的随机浮点数。
    • choice(seq):从序列 seq 中随机选择一个元素。
    • shuffle(x):将序列 x 中的元素随机打乱。
    • sample(population, k):从 population 序列中随机抽取 k 个元素,组成一个新列表。

Using third-party packages

pandas

  • 主要功能: pandas 是 Python 中强大的数据分析和操作工具,特别擅长处理表格型数据。
  • 常用功能:
    • Series: 一维带标签数组,类似于 Excel 中的一列。
    • DataFrame: 二维带标签表格,类似于 Excel 工作表。
    • 读取数据: 从各种数据源(如 CSV、Excel、SQL 数据库)读取数据。
    • 数据清洗: 处理缺失值、重复值、异常值。
    • 数据转换: 数据类型转换、重塑、合并、分组。
    • 数据分析: 计算统计量、排序、筛选、分组聚合。
  • 常用函数:
    • read_csv(), read_excel(): 读取 CSV 和 Excel 文件。
    • head(), tail(): 查看数据的前几行或后几行。
    • describe(): 计算数据的基本统计量。
    • groupby(): 按一列或多列分组。
    • merge(): 合并 DataFrame。
    • pivot_table(): 创建透视表。

NumPy

  • 主要功能: 提供了高性能的多维数组对象和对这些数组进行操作的工具。
  • 常用功能:
    • ndarray: 多维数组对象,是 NumPy 的核心数据结构。
    • 数组创建: 创建各种类型的数组,如随机数组、全零数组、全一数组等。
    • 数组运算: 支持向量化运算,大大提高计算效率。
    • 线性代数: 提供线性代数运算,如矩阵乘法、求逆等。
    • 随机数生成: 生成各种随机数。
  • 常用函数:
    • array(): 创建数组。
    • arange(): 创建等差数组。
    • linspace(): 创建等间隔数组。
    • reshape(): 改变数组形状。
    • dot(): 计算矩阵乘积。
    • random.rand(), random.randn(): 生成随机数。

Matplotlib

  • 主要功能: Matplotlib 是 Python 的绘图库,用于创建高质量的静态、动态和交互式图表。
  • 常用功能:
    • 线图: 绘制折线图。
    • 散点图: 绘制散点图。
    • 直方图: 绘制直方图。
    • 饼图: 绘制饼图。
    • 箱线图: 绘制箱线图。
    • 子图: 在一个画布上绘制多个子图。
    • 自定义: 对图表进行自定义设置,如标题、标签、颜色等。
  • 常用函数:
    • plot(): 绘制线图。
    • scatter(): 绘制散点图。
    • hist(): 绘制直方图。
    • pie(): 绘制饼图。
    • boxplot(): 绘制箱线图。
    • subplot(): 创建子图。

Exercise 1

答:

1
2
3
4
5
6
7
8
9
10
import pandas as pd

# Assuming 'df' is your DataFrame containing the data

# Filter rows where 'Model' contains 'Accord'
filtered_df = df[df['Model'].str.contains('Accord', case=False)]

# Display the filtered table
print(filtered_df)

df[] 不是函数,它是 pandas DataFrame 的索引运算符(indexing operator),是一种特殊的语法。

  • df['Model'] 选择数据表中的’Model’列
  • .str.contains('Accord', case=False)
    • 检查每一行的Model列是否包含’Accord’这个词
    • case=False 表示不区分大小写,比如’accord’、’ACCORD’都会被匹配到
    • 这会返回一个布尔值序列(True/False)
  • df[...] 使用这个布尔序列来筛选原始数据表,只保留结果为True的行。

APIs to get data from the web

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 假设data是这样的JSON结构:
data = {
'list': [ # list是一个列表
{ # [0]表示取第一个元素(第一个字典)
'main': {
'temp': 20.5 # 温度数据
},
'weather': [ # weather也是一个列表
{ # [0]表示取第一个天气描述
'description': '晴天'
}
],
'wind': {
'speed': 5.2 # 风速数据
}
},
{ # 这是列表的第二个元素[1]
# 更多天气数据...
}
]
}

# 所以代码是这样工作的:
temperature = data['list'][0]['main']['temp'] # 获取20.5
description = data['list'][0]['weather'][0]['description'] # 获取'晴天'
wind_speed = data['list'][0]['wind']['speed'] # 获取5.2

Extending Python with Packages and APIs
https://blakehansen130.github.io/2024/10/24/AI Python for Beginners:Extending Python with Packages and APIs/
发布于
2024年10月24日
许可协议