NumPy的应用(一)
Numpy 是一个开源的 Python 科学计算库,用于快速处理任意维度的数组。Numpy 支持常见的数组和矩阵操作,对于同样的数值计算任务,使用 NumPy 不仅代码要简洁的多,而且 NumPy 在性能上也远远优于原生 Python,至少是一到两个数量级的差距,而且数据量越大,NumPy 的优势就越明显。
NumPy 最为核心的数据类型是ndarray
,使用ndarray
可以处理一维、二维和多维数组,该对象相当于是一个快速而灵活的大数据容器。NumPy 底层代码使用 C 语言编写,解决了 GIL 的限制,ndarray
在存取数据的时候,数据与数据的地址都是连续的,这确保了可以进行高效率的批量操作,性能上远远优于 Python 中的list
;另一方面ndarray
对象提供了更多的方法来处理数据,尤其获取数据统计特征的方法,这些方法也是 Python 原生的list
没有的。
准备工作
-
启动 JupyterLab
jupyter lab
提示:在启动 JupyterLab 之前,建议先安装好数据分析相关依赖项,包括之前提到的三大神器以及相关依赖项。如果使用 Anaconda,则无需单独安装,可以通过 Anaconda 的 Navigator 来启动。
-
导入
import numpy as np import pandas as pd import matplotlib.pyplot as plt
说明:如果已经启动了 JupyterLab 但尚未安装相关依赖库,例如尚未安装
numpy
,可以在单元格中输入%pip install numpy
并运行该单元格来安装 NumPy。当然,我们也可以在单元格中输入%pip install numpy pandas matplotlib
把 Python 数据分析三个核心的三方库都安装上。注意上面的代码,我们不仅导入了 NumPy,还将 pandas 和 matplotlib 库一并导入了。
创建数组对象
创建ndarray
对象有很多种方法,下面我们介绍一些常用的方法。
方法一:使用array
函数,通过list
创建数组对象
代码:
array1 = np.array([1, 2, 3, 4, 5])
array1
输出:
array([1, 2, 3, 4, 5])
代码:
array2 = np.array([[1, 2, 3], [4, 5, 6]])
array2
输出:
array([[1, 2, 3],
[4, 5, 6]])
方法二:使用arange
函数,指定取值范围和跨度创建数组对象
代码:
array3 = np.arange(0, 20, 2)
array3
输出:
array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
方法三:使用linspace
函数,用指定范围和元素个数创建数组对象,生成等差数列
代码:
array4 = np.linspace(-1, 1, 11)
array4
输出:
array([-1. , -0.8, -0.6, -0.4, -0.2, 0. , 0.2, 0.4, 0.6, 0.8, 1. ])
方法四:使用logspace
函数,生成等比数列
代码:
array5 = np.logspace(1, 10, num=10, base=2)
array5
注意:等比数列的起始值是 2 1 2^1 21,等比数列的终止值是 2 10 2^{10} 210,