当前位置:文档之家› Python 数据分析基础包:Numpy

Python 数据分析基础包:Numpy

Numpy 的核心内容是它的多维数组对象——ndarray(N-Dimensions Array),整个包几乎都是围绕这个对象展开。

Numpy 本身并没有提供多么高级的数据结构和分析功能,但它是很多高级工具(如pandas)构建的基础,在结构和操作上具有统一性,因此理解Nump y 的数组及面向数组的计算有助于更加高效地使用诸如pandas 之类的工具。

数据结构
型bool , int , float , complex相同,实际上使用Python 的类型名称(int, float 等)也是合法的。

intc , intp的大小不定是取决于操作系统。

创建ndarray
它接受一切序列类型对象,并将其转化为一个ndarray 数组,维度视序列的嵌套深度而定:
数组的dtype 会由系统自动推定,除非你显式传递一个参数进去。

(系统一般会默认使用int32 或float64)
除array()函数外,还有一些可以用于创建数组的便捷函数:
.transpose(*axes)
转置方法返回的是原数组的视图(不复制)。

因为我对多维数组也搞不太懂,就只举个二维数组的例子吧(不给axes 参数):
形状相同的数组之间的运算都会应用到元素级:
ndarray 的索引和切片语法与Python 的列表相似。

都是通过如[0],[0:5:2]这样的方括号+ 冒号来完成。

比较不同之处在于为了方便对多维数组切片,ndarray 对象还支持使用逗号间隔的多维切片方法:[0,3],[0,3:9:2]。

普通索引
这种切片方法可以看做是一种语法糖,因为最标准的对多维数组的切片方法应该是下面这样子的,包括Python 原本对嵌套列表的切片方法也是这样子的:
本例中一个值得注意之处在于bar%2==0这个表达式,在Python 的标准语法中对一个列表和一个整型应用取余操作是非法的,你必须使用循环(如for)遍历列表的单个元素才行。

但numpy 很贴心地通过广播解决了这个问题,吊不吊!
花式索引
通用函数(即ufunc)是一种对ndarray 执行元素级运算的函数。

通用函数依据参数的数量不同,可分为一元(unary)函数和二元(binary)函数。

(参数一般都是ndarray 对象)一元函数
二元函数。

相关主题