业务背景在Python数据分析之爬虫的练习中,我们只是按部就班滴把爬虫的应用流程执行了一遍,并没有过多地介绍数据类型方面的内容,使用的都是Python自带的类型,比如列表等。 page_date = '<span class='c-color.*?aria-label='发布于:(.*?)''date = re.findall(page_date, page, re.S)print(date)print(type(date)) # 通过type()函数查询数据类型'''查询结果为:['4天前', '7天前', '5天前', '5天前', '6天前', '昨天16:16', '4月19日', '4月20日', '昨天16:16', '4天前']<class 'list'> ''' 但是这只是整个数据分析流程的第一步:数据获取和预处理,我们拿到数据后还需要进行必要的数据计算、数据建模等环节,如果只是使用Python默认的数据类型就会比较麻烦,需要使用专精于科学计算和数学分析的工具包,主要是本篇所提到的NumPy以及以此为基础的Pandas。 什么是NumPyNumPy是Python中科学计算的基础包,它提供了多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种例程,包括数学、逻辑、形状操作、排序、选择、I/O 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy NumPy包的核心是ndarray对象,封装了相同数据类型的n维数组,许多操作在编译代码中执行以提高性能。 NumPy数组和标准Python序列之间有几个重要的区别:
综上所述,为了有效地使用当今许多(甚至大部分)基于Python的科学或数学软件包,除了知道如何使用Python内置序列类型外,必须需要知道如何使用NumPy数组。 下面两个链接分别是NumPy的官方文档和新手指南地址,有需要的伙伴请自行查阅,当然有需要中文版的伙伴也可以留言,鄙人友情提供。 NumPy的官方文档地址: NumPy应用示例本文先只对常规的用法予以举例说明,我的观点还是够用就好,随用随学,这样在实际需求或者项目中应用,会比单纯地为了学习而学习掌握的效果更好。 首先,给出一个Python列表(list)和NumPy数组(ndarray)对比的例子。
从上面的例子中可以看到,其实列表和数组在基本表现上的差异并不大。 list与数组的对比 那么为什么Python又要创建一个NumPy库呢?主要有两点:
# 数组的优势1-数组方便数学运算c = a * 2d = b * 2print(c)print(d)'''输出结果为:[1, 2, 3, 4, 1, 2, 3, 4][2 4 6 8]'''# 数组的优势2-数组可以是多维的e = [[1, 2], [3, 4], [5, 6]] # 列表里的元素为小列表f = np.array([[1, 2], [3, 4], [5, 6]]) # 创建二维数组的一种方式print(e)print(f)'''输出结果为:[[1, 2], [3, 4], [5, 6]][[1 2] [3 4] [5 6]]''' 既然数据具有如此明显的优势,那么该如何创建数组呢?
创建一维数组 通过单调序列初始化数组 上面的可视化图形引用自译言网的《图解 | NumPy可视化指南》,它详细地给出了NumPy的使用指南,有全面了解需求的伙伴可以自行查询,访问地址为: 一起动手练最后,又到了一起动手连环节,请伙伴们根据自己的数据需求练习下NumPy的操作。再次强调下,本偏的NumPy只是后面Pandas的基础,够用即可,后续可以在实战环境中不断学习,丰富自己的知识网络。 欢迎给位伙伴互动评论,U're welcome~~~ 学习学习 |
|