Python NumPy 库详解

NumPy(Numerical Python)是一个支持大量维度数组与矩阵的高效库,此外,它也为数组提供了许多数学函数库。NumPy 在数据科学、机器学习和科学计算中广泛使用。它是 Python 中最基础的数据处理库之一,与 Pandas、Matplotlib 等其他数据分析库紧密结合。

NumPy 的核心概念

ndarray 对象

NumPy 的核心是 ndarray(n-dimensional array),它是一个多维数组,具有相同的数据类型。创建 ndarray 最简单的方法是使用 numpy.array() 函数。例如:

import numpy as np

# 创建一维数组
array_1d = np.array([1, 2, 3, 4])
print("一维数组:", array_1d)

# 创建二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print("二维数组:\n", array_2d)

数组属性

ndarray 对象有几个重要的属性:

  • .dtype:数组中元素的类型。
  • .shape:数组的维度。
  • .ndim:数组的维数。
  • .size:数组中元素的总数。
print("数组类型:", array_1d.dtype)
print("数组形状:", array_2d.shape)
print("数组维数:", array_2d.ndim)
print("数组大小:", array_2d.size)

数组索引与切片

NumPy 支持类似 Python 列表的索引方式,但能够进行多维索引和切片。例如:

# 获取单个元素
print("第一个元素:", array_1d[0])

# 切片操作
print("切片前两个元素:", array_1d[:2])

# 多维切片
print("二维数组第一个行:", array_2d[0, :])
print("二维数组第二列:", array_2d[:, 1])

数组运算

NumPy 提供了对数组进行数学运算的能力。你可以直接对数组进行算术运算,NumPy 会逐元素计算。

# 数组运算
array_a = np.array([1, 2, 3])
array_b = np.array([4, 5, 6])

# 加法
print("加法:", array_a + array_b)
# 乘法
print("乘法:", array_a * array_b)
# 逐元素平方
print("逐元素平方:", array_a ** 2)

广播机制

NumPy 的广播机制允许不同形状的数组一起进行运算。较小的数组会被自动扩展到与较大的数组相同的形状。

array_c = np.array([[1], [2], [3]])
array_d = np.array([4, 5, 6])
result = array_c + array_d
print("广播结果:\n", result)

常用函数

NumPy 提供了很多用于数组运算和处理的函数,例如 np.sum(), np.mean(), np.median(), np.std() 等等。

# 计算数组的和、均值、中位数和标准差
print("数组总和:", np.sum(array_a))
print("数组均值:", np.mean(array_a))
print("数组中位数:", np.median(array_a))
print("数组标准差:", np.std(array_a))

数组操作

NumPy 还提供了多种数组操作,比如拼接(concatenate)、分割(split)、转置(transpose)等。

# 数组拼接
array_e = np.array([7, 8, 9])
concatenated_array = np.concatenate((array_a, array_e))
print("拼接后数组:", concatenated_array)

# 数组分割
split_arrays = np.split(array_2d, 2)
print("分割后的数组:", split_arrays)

# 数组转置
transposed_array = array_2d.T
print("转置后的数组:\n", transposed_array)

总结

NumPy 是进行科学计算和数据分析的重要工具,其高效的数组操作和丰富的数学函数为数据处理和分析提供了便利。通过学习和掌握 NumPy,用户可以在数据科学的道路上走得更远。希望这篇文章能帮助你更好地了解和使用 NumPy 库。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部