目录
- 1. 多维数组对象 ndarray
- 2. 广播功能
- 3. 数学运算
- 4. 索引和切片
- 5. 统计函数
- 6. 数组操作
NumPy
(Numerical Python)是 Python
中一个非常重要的基础库,它为 Python
提供了高效的多维数组对象以及处理这些数组的各种工具。对于初学者而言,了解 NumPy
的功能能为后续的数据处理、科学计算等工作打下坚实基础。下面详细介绍 NumPy
的主要功能:
1. 多维数组对象 ndarray
ndarray
是 NumPy
的核心,它是一个多维的、同类型的数据容器。你可以把它想象成一个表格,表格中的每个元素类型都是一样的,比如都是整数或者都是浮点数。
创建数组
你可以使用多种方式创建 ndarray
,例如:
import numpy as np# 从Python列表创建一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print("一维数组:", arr1)# 创建二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print("二维数组:", arr2)# 创建全零数组
zeros_arr = np.zeros((3, 3))
print("全零数组:", zeros_arr)# 创建全一数组
ones_arr = np.ones((2, 4))
print("全一数组:", ones_arr)
数组属性
ndarray
有很多有用的属性,比如 shape
可以查看数组的形状,dtype
可以查看数组元素的数据类型。
import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6]])
print("数组形状:", arr.shape)
print("数组元素数据类型:", arr.dtype)
2. 广播功能
广播是 NumPy
中一个强大的特性,它允许你在不同形状的数组之间进行算术运算。当两个数组进行运算时,NumPy
会自动调整数组的形状,使得它们能够兼容。
import numpy as np# 一维数组
a = np.array([1, 2, 3])
# 二维数组
b = np.array([[4], [5], [6]])# 进行加法运算,利用广播功能
result = a + b
print("广播运算结果:", result)
3. 数学运算
NumPy 提供了丰富的数学函数,可对数组进行各种运算,如加减乘除、三角函数、对数函数等。
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])# 加法运算
add_result = arr1 + arr2
print("加法结果:", add_result)# 乘法运算
mul_result = arr1 * arr2
print("乘法结果:", mul_result)# 三角函数运算
sin_result = np.sin(arr1)
print("正弦函数结果:", sin_result)
4. 索引和切片
你可以使用索引和切片来访问和修改数组中的元素。
import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 访问单个元素
element = arr[1, 2]
print("访问单个元素:", element)# 切片操作
slice_arr = arr[0:2, 1:3]
print("切片结果:", slice_arr)
5. 统计函数
NumPy 提供了许多统计函数,用于计算数组的统计信息,如均值、中位数、标准差等。
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 计算均值
mean_value = np.mean(arr)
print("均值:", mean_value)# 计算中位数
median_value = np.median(arr)
print("中位数:", median_value)# 计算标准差
std_value = np.std(arr)
print("标准差:", std_value)
6. 数组操作
NumPy 还提供了一些用于数组操作的函数,如数组的拼接、转置等。
import numpy as nparr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])# 数组拼接
concatenated_arr = np.concatenate((arr1, arr2), axis=0)
print("拼接后的数组:", concatenated_arr)# 数组转置
transposed_arr = arr1.T
print("转置后的数组:", transposed_arr)