首页 > 文章列表 > NumPy 速成班:快速掌握数据处理秘诀

NumPy 速成班:快速掌握数据处理秘诀

267 2024-03-31

NumPy 速成班:快速掌握数据处理秘诀

创建数组

要使用 NumPy,首先需要创建数组。数组是存储同类型元素的集合,可以使用 np.array() 函数创建:

import numpy as np

array = np.array([1, 2, 3, 4, 5])
print(array)

输出:

[1 2 3 4 5]

访问元素

我们可以使用索引来访问数组中的元素。索引从 0 开始,可以使用方括号:

print(array[0])# 访问第一个元素
print(array[-1])# 访问最后一个元素

数组操作

NumPy 提供了各种数组操作,包括:

  • 算术运算: +, -, *, /
  • 比较运算: ==, !=, <, >
  • 逻辑运算: &, |, ^
  • 通用函数: np.sin(), np.cos(), np.sqrt()

多维数组

NumPy 支持多维数组,也称为张量。要创建一个多维数组,需要在 np.array() 中提供嵌套列表:

array = np.array([[1, 2], [3, 4]])
print(array)

输出:

[[1 2]
 [3 4]]

索引多维数组

要索引多维数组,可以使用多个索引:

print(array[0, 0])# 访问第一行第一列的元素
print(array[1, 1])# 访问第二行第二列的元素

广播

广播是一种在不同形状的数组上执行算术运算的机制。它将较小的数组扩展到与较大数组相同的形状,以便进行逐元素运算。例如:

array1 = np.array([1, 2, 3])
array2 = np.array([[4], [5], [6]])

result = array1 * array2
print(result)

输出:

[[ 48 12]
 [ 5 10 15]
 [ 6 12 18]]

转置和广播

转置可以将数组的形状进行转换。NumPy 中的 np.transpose() 函数可以将行和列进行互换:

array = np.array([[1, 2], [3, 4]])
transposed_array = np.transpose(array)
print(transposed_array)

输出:

[[1 3]
 [2 4]]

高级索引

NumPy 提供了高级索引功能,允许使用布尔索引数组来选择特定元素:

array = np.array([1, 2, 3, 4, 5])
mask = np.array([True, False, True, False, True])

filtered_array = array[mask]
print(filtered_array)

输出:

[1 3 5]

数据处理技巧

掌握 NumPy 的基础知识后,以下是一些数据处理技巧:

  • 处理缺失值: 使用 np.isnan()np.isnull() 检测缺失值,并使用 np.nanmean()np.nanmedian() 计算忽略缺失值后的平均值和中值。
  • 数据归一化: 使用 np.max()np.min() 找到最大值和最小值,然后使用 (array - np.min()) / (np.max() - np.min()) 将数据归一化到 0 到 1 之间。
  • 降维: 使用 np.sum()np.mean()np.std() 等函数对更高维的数组进行降维。
  • 聚合: 使用 np.unique()np.bincount()np.histogram() 等函数对数据进行聚合和分组。