最近的爬虫学习告一段落,后续补上爬虫的笔记。现在到数据分析部分,先从 NumPy 开始(环境 python-3.6.5) 2019/1/23
NumPy 基础
NumPy 是高性能科学计算和数据分析的基础包。包括以下几个功能:
ndarray, 一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组;
用于对整组数据进行快速运算的标准数学函数(无需编写循环);
用于读写磁盘的工具以及用于操作内存映射文件的工具;
线性代数,随机数生成以及傅里叶变换功能;
用于集成由 C,C++,Fortran 等语言编写的代码的工具。
例子引入
用 python 原生代码对两个向量相加
def pythonsum(n):
a = list(range(n))
b = list(range(n))
c = []
for i in range(len(a)):
a[i] = i ** 2
b[i] = i ** 3
c.append(a[i] + b[i])
return c
arr = pythonsum(2)
print(arr)
利用 NumPy 对向量相加。
import numpy as np
def numpysum(n):
a = np.arange(n) ** 2
b = np.arange(n) ** 3
c = a + b
return c
arr = numpysum(2)
print(arr)
两种方法都可以对向量进行相加,相比而言利用 NumPy 库的代码会更简洁一点。可以对两种方法计算出执行时间,结果也是 NumPy 的效率高些。
ndarray,多维数组对象
NumPy 中的 ndarray 是一个多维数组对象,这个对象是一个快速而且灵活的大数据集容器, 该对象由两个部分组成:
实际的数据
描述这些数据的元数据
ndarray 是一个通用的同构数据多维容器,指的是其中的元素必须是相同的数据类型,每一个数组都有一个 shape(表示各维度大小的元组)和一个 dtype(用于说明数据类型的对象)。
In [12]: import numpy as np
In [13]: a = np.arange(5)
In [14]: a.dtype
Out[14]: dtype(‘int32’)
In [15]: a.shape
Out[15]: (5,)
In [16]: a
Out[16]: array([0, 1, 2, 3, 4])
NumPy 中创建数组的函数
函数
说明
array
将输入数据 (元组,列表或其他序列类型) 转换为 ndarray。要么推断出 dtype, 要么显示指定 dtype。默认直接复制输入数据
asarray
将输入转换为 ndarray, 如果输入就是一个 ndarray 就不进行复制
arange
类似内置的 range, 但返回的是一个 ndarray 而不是一个列表
ones,ones_like
根据指定的形状和 dtype 创建一个全是 1 的数组。ones_like 以另一个数组为参数,并根据其形状和 dtype 创建一个全为 1 的数组
zeros,zeros_like
类似于 ones,ones_like,只不过创建的是全为 0 的数组