利用Python进行数据分析 第4章 NumPy基础-数组与向量化计算(1)
1. NumPy简介
NumPy是Python数值计算最重要的基础包,大多数提供科学计算的包都是用NumPy作为基础。
NumPy功能如下:(1)ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
(2)用于对整组数据进行快速运算的标注数学函数(无需编写循环)。
(3)用于读写磁盘数据的工具,以及用于操作内存映射文件的工具。
(4)线性代数、随机数生成,以及傅里叶变换功能。
(5)用于集成由C、C++、Fortran等语言编写的代码的A C API。
展示性能差距的示例,一个包含一百万整数的数组和一个等价的Python列表:
从示例可以看出,Numpy的算法比纯Python快40倍(一般可以快10到100倍或更快),并且使用的内存更少。
2. NumPy的ndarray:一种多维数组对象
NumPy一个最重要的特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。
示例,用NumPy生成一个包含随即数据的小数组
ndarray是一个通用的同构数据多维容器,所有元素必须是相同类型的。
每个数组都有一个shape(一个表示各维度大小的元组)和一个dtype(一个用于说明数组数据类型的对象):
2.1 创建ndarray
(1)使用array函数,最简单的方法。该函数可接受一切序列型的对象
嵌套序列(如一组等长列表组成的列表),将会被转换为一个多维数组:
(2)使用一些函数创建数组,只需要传入一个表示形状的元组即可
如zeros和ones分别可以创建指定长度或形状的全0或全1数组;empty可以创建一个没有任何具体值得数组。
(3)arange是Python内置函数range的数组版
2.2 narray的数据类型
dtype(数据类型)是一个特殊的对象。
可通过narray的astype方法,明确地将一个数组从一个dtype转换成另一个dtype:
PS:
1)将浮点型转换成整数,则小数部分会被截取删除(并不会四舍五入):
2)若某字符串数组表示地都数字,也可以用astype将其转换为数值形式:
3)数组地dtype另一个属性,可用一个数组的属性转换为指定数组的属性:
4)还可用简洁的类型代码来表示dtype: