python机器学习库numpy---2、numpy介绍
一、总结
一句话总结:
(1)、NumPy是使用Python进行科学计算的基础软件包。
(2)、Numpy主要用于大数据量的同构数组处理,以及数组操作函数、科学计算函数和线性代数等
1、numpy库核心?
numpy的核心结构是同构的ndarray(n维数组)
2、numpy库和pandas库的关系?
NumPy处理同构数组数据,Pandas处理异构数据,两者相辅相成
3、NumPy在大数组的数据处理方面进行的优化?
(a)、【连续的内存块】:NumPy是在一个连续的内存块中存储数据,独立于其他Python内置对象,如此便可以加速数据索引的速度。
(b)、【调用大量c语言算法库】:NumPy调用了大量的用C语言编写的算法库,使得其可以直接操作内存,不必进行Python动态语言特性所含有的前期类型检查工作,从而大大提高了运算速度。
(c)、【整数组直接计算】:NumPy可以在整个数组上执行复杂的计算,能够大幅提高运算效率(基于NumPy的算法要比纯Python快10到100倍,甚至会快更多)。
二、numpy介绍
博客对应课程的视频位置:2、numpy介绍-范仁义-读书编程笔记
https://www.fanrenyi.com/video/38/339
numpy库是做什么的
NumPy是使用Python进行科学计算的基础软件包。
Numpy主要用于大数据量的同构数组处理,以及数组操作函数、科学计算函数和线性代数等
numpy库核心
numpy的结构是同构的ndarray
numpy库和pandas库的关系
NumPy:大数据量的同构数组处理,以及复杂函数和线性代数等
Pandas:处理非纯粹的、混杂数组
虽然NumPy有着种种出色的特性,其本身则难以独支数据分析这座大厦,这是一方面是由于NumPy几乎仅专注于数组处理, 另一方面则是数据分析牵涉到的数据特性众多,需要处理各种表格和混杂数据,远非纯粹的数组(NumPy)方便解决的,而这就是pandas发力的地方。
NumPy在大数组的数据处理方面进行的优化?
- 【连续的内存块】:NumPy是在一个连续的内存块中存储数据,独立于其他Python内置对象,如此便可以加速数据索引的速度。
- 【调用大量c语言算法库】:NumPy调用了大量的用C语言编写的算法库,使得其可以直接操作内存,不必进行Python动态语言特性所含有的前期类型检查工作,从而大大提高了运算速度。
- 【整数组直接计算】:NumPy可以在整个数组上执行复杂的计算,能够大幅提高运算效率(基于NumPy的算法要比纯Python快10到100倍,甚至会快更多)。
上百G的数据如何处理
Python处理几个G的数据绰绰有余,至于几十G也勉强可以,而上百G的数据这就算是Hadoop与Spark系列的任务,不是Python的NumPy与pandas可以应付的,也不是R语言某个第三方包可以处理的。
NumPy数组 和 原生Python List(列表)之间有几个重要的区别
- 【numpy固定大小】:NumPy 数组在创建时具有固定的大小,与Python的原生数组对象(可以动态增长)不同。更改ndarray的大小将创建一个新数组并删除原来的数组。
- 【numpy同构】:NumPy 数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。
- 【numpy更适合于科学计算】:NumPy 数组有助于对大量数据进行高级数学和其他类型的操作。通常,这些操作的执行效率更高,比使用Python原生数组的代码更少。
- 【numpy使用广泛】:越来越多的基于Python的科学和数学软件包使用NumPy数组; 虽然这些工具通常都支持Python的原生数组作为参数,但它们在处理之前会还是会将输入的数组转换为NumPy的数组,而且也通常输出为NumPy数组。