如下分别是numpy、Scipy、pandas的简介。虽然这些包提供的一些结构比python自身的“更高级、更高效”,更高级是由于它们能完成更高级的任务,可是,学习的时候尽可能不要和python割裂开认识,最好是辩证的看问题,既要看到区别,又要看到联系,这样才能理解深入、真正的运用自如。好比python提供list这种数据结构,能够用来看成数组使用;好比咱们定义一个list。a=range(10),可是要是对每一个元素同时操做好比平方操做,这时候可能须要写个循环,就没有np.arange(10)**2方便。同时,如下的简介和case中也会从对比和联系的角度出发,一块学习这些概念或是实体。html
What is numpy?python
标准安装的Python中用列表(list)保存一组值,能够用来看成数组使用,不过因为列表的元素能够是任何对象,所以列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],须要有3个指针和三个整数对象。对于数值运算来讲这种结构显然比较浪费内存和CPU计算时间。数据库
此外Python还提供了一个array模块,array对象和列表不一样,它直接保存数值,和C语言的一维数组比较相似。可是因为它不支持多维,也没有各类运算函数,所以也不适合作数值运算。数组
NumPy的诞生弥补了这些不足,NumPy提供了两种基本的对象:ndarray(N-dimensional array object)和 ufunc(universal function object)。即提供经常使用的数值数组、矩阵等函数。ndarray(下文统一称之为数组)是存储单一数据类型的多维数组,而ufunc则是可以对数组进行处理的函数。数据结构
优势是:是基于向量化的运算,进行数值运算时Numpy数组比list效率高函数
以上部分主要参考《利用numpy作科学计算》一书(点击书名查看详细介绍)工具
What is Scipy?学习
numpy 准确地说提供了一个在python中作科学计算的基础库,侠义地讲它重在数值计算,甚至能够说是用于多维数组处理的库;而 scipy 则是基于numpy,提供了一个在python中作科学计算的工具集,也就是说它是更上一个层次的库,主要包含一下模块:.net
What is pandas?指针
是一种构建于Numpy的高级数据结构和精巧工具,快速简单的处理数据。
好比,要是没有pandas,对某行元素的操做或是说转置可能须要不少循环。