一、NumPy是什么
NumPy是Python中最重要的第三方库之一,特别是在数据科学和机器学习领域。它是一个开源的Python扩展库,支持高性能的科学计算和数据分析。一般来说,使用Python进行数据分析一定会用到NumPy。其中的ndarray类型,是在Python中进行大规模数值运算的必备类型,它可以提高Python数值运算的效率。
除此之外,NumPy还提供了很多现代、科学运算所需的函数和方法,涉及线性代数、傅里叶变换、随机数生成等等,为Python在科学计算和数据分析上提供了强大的支持。
二、如何使用NumPy
1. 安装NumPy
$ pip install numpy
2. 引入NumPy模块
import numpy as np
三、NumPy中的ndarray数组
ndarray,即N-dimensional array(多维数组),是NumPy中最重要的一个类。它是一个由相同数据类型的元素组成的基本数据结构,可以进行高效的运算。
在NumPy中,使用array()函数生成ndarray数组。
import numpy as np # 生成一维数组 arr1 = np.array([1, 2, 3, 4, 5]) print(arr1) # 生成二维数组 arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(arr2) # 生成三维数组 arr3 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) print(arr3)
输出结果:
[1 2 3 4 5] [[1 2 3] [4 5 6] [7 8 9]] [[[1 2] [3 4]] [[5 6] [7 8]]]
ndarray数组具有以下特点:
- 它们的元素必须是相同类型的,如int、float、string等。
- 它们的大小是固定的,一旦创建就不能改变。
- 对于元素的类型,ndarray数组是占用内存最少的。
四、NumPy中的数组运算
1. 数组的加、减、乘、除
import numpy as np arr1 = np.array([1, 2, 3, 4, 5]) arr2 = np.array([6, 7, 8, 9, 10]) # 数组的加法 print(arr1 + arr2) # 数组的减法 print(arr2 - arr1) # 数组的乘法 print(arr1 * arr2) # 数组的除法 print(arr1 / arr2)
输出结果:
[ 7 9 11 13 15] [5 5 5 5 5] [ 6 14 24 36 50] [0.16666667 0.28571429 0.375 0.44444444 0.5 ]
2. 数组的加、减、乘、除——广播运算
当进行数组运算时,NumPy会利用广播(broadcasting)机制,自动对不同大小的数组进行扩展,使它们的形状相同。
如下代码中,arr1是一维数组,arr2是二维数组。在计算时,NumPy会将arr1扩展成与arr2一样的形状,使它们可以进行运算。
import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 数组的加法(广播运算) print(arr1 + arr2) # 数组的减法(广播运算) print(arr1 - arr2) # 数组的乘法(广播运算) print(arr1 * arr2) # 数组的除法(广播运算) print(arr1 / arr2)
输出结果:
[[ 2 4 6] [ 5 7 9] [ 8 10 12]] [[ 0 0 0] [-3 -3 -3] [-6 -6 -6]] [[ 1 4 9] [ 4 10 18] [ 7 16 27]] [[1. 1. 1. ] [0.25 0.4 0.5 ] [0.14285714 0.25 0.33333333]]
五、NumPy中的矩阵运算
1. 矩阵的创建
使用matrix()函数可以创建矩阵。创建矩阵时需要注意,将所有的数值用英文逗号隔开,不同行之间需要用分号隔开。
import numpy as np # 创建3*3的矩阵mat1 mat1 = np.matrix('1, 2, 3; 4, 5, 6; 7, 8, 9') print(mat1) # 创建2*3的矩阵mat2 mat2 = np.matrix('1, 2, 3; 4, 5, 6') print(mat2) # 创建2*2的矩阵mat3 mat3 = np.matrix('1, 2; 3, 4') print(mat3)
输出结果:
[[1 2 3] [4 5 6] [7 8 9]] [[1 2 3] [4 5 6]] [[1 2] [3 4]]
2. 矩阵的加、减、乘
使用矩阵时,NumPy提供了特殊的运算符:+、-、*。这些运算都是基于矩阵乘法的。
import numpy as np # 创建两个矩阵 mat1 = np.matrix('1, 2, 3; 4, 5, 6; 7, 8, 9') mat2 = np.matrix('9, 8, 7; 6, 5, 4; 3, 2, 1') # 矩阵的加法 print(mat1 + mat2) # 矩阵的减法 print(mat1 - mat2) # 矩阵的乘法 print(mat1 * mat2)
输出结果:
[[10 10 10] [10 10 10] [10 10 10]] [[-8 -6 -4] [-2 0 2] [ 4 6 8]] [[ 30 24 18] [ 84 69 54] [138 114 90]]
六、NumPy中的适用于数据分析的函数
NumPy除了提供运算外,还提供了适用于数据分析的各种函数。
1. sum()函数——数组元素的累加
sum()函数可以计算数组中元素的累加和。
import numpy as np # 创建一个数组 arr = np.array([1, 2, 3, 4, 5]) # 计算数组的累加和 print(np.sum(arr))
输出结果:
15
2. mean()函数——数组元素的平均值
mean()函数可以计算数组中元素的平均值。
import numpy as np # 创建一个数组 arr = np.array([1, 2, 3, 4, 5]) # 计算数组的平均值 print(np.mean(arr))
输出结果:
3.0
3. std()函数——数组元素的标准差
std()函数可以计算数组中元素的标准差。
import numpy as np # 创建一个数组 arr = np.array([1, 2, 3, 4, 5]) # 计算数组的标准差 print(np.std(arr))
输出结果:
1.4142135623730951
七、总结
本文详细介绍了Python中NumPy模块的基本使用方法,包括如何安装NumPy、引入NumPy模块、ndarray数组的创建、数组和矩阵运算、适用于数据分析的各种函数等。NumPy是Python进行科学计算和数据分析的重要工具,掌握其基本使用方法,将有助于Python相关领域的工作。