本系列文章配套代码获取有以下三种途径:
-
可以在以下网站查看,该网站是使用JupyterLite搭建的web端Jupyter环境,因此无需在本地安装运行环境即可使用,首次运行浏览器需要下载一些配置文件(大约20M):
https://returu.github.io/Python_Data_Analysis/lab/index.html
-
也可以通过百度网盘获取,需要在本地配置代码运行环境,环境配置可以查看【Python基础】2.搭建Python开发环境:
链接:https://pan.baidu.com/s/1MYkeYeVAIRqbxezQECHwcA?pwd=mnsj
提取码:mnsj
-
前往GitHub详情页面,单击 code 按钮,选择Download ZIP选项:
https://github.com/returu/Python_Data_Analysis
——————————————————
1.Numpy库介绍:
Numpy是Numercial Python的简称,是一个开源的Python科学计算基础库。
-
提供一个强大的N维数组对象ndarray,并提供了基于数组的算术操作及广播功能函数;
-
整合C/C++/Fortran代码工具;
-
线性代数、傅里叶变换、随机数生成等功能。
Numpy是Scipy、Pandas等数据处理或科学计算库的基础。
Numpy的引用直接使用以下语句即可:
1import numpy as np # 尽管别名可以省略或者修改,建议使用上述约定的别名
官方文档地址:https://numpy.org/doc/stable/index.html#
2.多维数组对象ndarray的设置原因:
Python中可以利用列表表示数组,那Numpy为什么还要设置ndarray那?
例如,计算A²+B²,其中A和B是一维数组。
在python语法中,需要利用循环结构,计算数组中的每个数据。
1%%timeit
2def pysum():
3 a = list(range(1_000_000))
4 b = list(range(1_000_000))
5 c = []
6
7 for i in range(len(a)):
8 c.append(a[i]**2 + b[i]**3)
9 return c
10
11pysum()
12# 706 ms ± 17.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
而Numpy则是把一个一维数据作为单个数据,直接进行计算。
1%%timeit
2def npsum():
3 a = np.array(list(range(1_000_000)))
4 b = np.array(list(range(1_000_000)))
5 c = a**2 + b**3
6 return c
7
8
9npsum()
10# 170 ms ± 7.07 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)TIPS:%time: 在行模式下,代码运行一次所花费的时间。%%time:在单元模式下,代码运行一次所花费的时间。%timeit: 在行模式下,执行代码块若干次,取最佳结果。%%timeit: 在单元模式下,执行代码块若干次,取最佳结果
行模式:只对紧跟其后的代码进行测试。单元模式:用于代码块的测试。
从上面例子中可以看出,N维数组对象ndarray:
-
数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据。 -
设置专门的数组对象,经过优化,可以提升这类应用的运算速度(numpy底层是由C语言编写,计算速度更快)。 -
数组对象采用相同的数据类型,有助于节省运算和存储空间(因为在科学计算中,一个维度所有数据的类型往往是相同的)。
3.多维数组对象ndarray:
ndarray是Python中一个快速、灵活的大型数据集容器,作为一个多维数组对象,由两部分构成:
-
实际的数据;
-
描述这些数据的元数据(数据维度、数据类型等):
ndarray数组一般要求所有要素类型相同(同质),数组下标从0开始(但也有特殊情况)。
轴(axis):保存数据的维度。
秩(rank):轴的数量。
本篇文章来源于微信公众号: 码农设计师