Numpy
1.为什么用NumPy?
虽然Python可以利用list实现数组的功能,但随着数据量的增大速度太慢,也就是说Python并没有提供真正的数组功能。NumPy提供了真正的 数组功能以及对数组的快速运算的函数。NumPy的很多内置函数的处理数据速度都是C语言级别的,所以尽量使用内置函数。对数组操作就不用写循环而是批量操作了。
2.Numpy是什么样的?
其对象是ndarray类型的即N维数组类型。其中的元素必须是相同类型。ndarray的两个属性dtype指ndarray同意的数据类型 另一个shape表示数组各维度的大小。
3.ndarray该如何创建?
1)最简单的方法是通过np.array()函数来创建。将一个Python列表数据转化为数组。
2)如果创建一些特殊的数组可以通过np.zeros(), np.ones(), np.empty()来创建。
需要注意:tips1:np.empty()得到的不是空值,而是随机的垃圾值。tips2:2)中几个特数函数的用法np.zeros(shape, dtype, order)
4.数组与标量之间的运算
1)两个大小相同的数组,任何运算都应用到元素级;
2)数组和标量进行运算,将标量和每个元素进行运算;
3)两个大小不同的数组进行运算,叫广播。这里要特别注意,两个大小不同的数组之间相乘应该用“@”这个运算符号,而不是“*”。
否则报错:
5.数组的数学和统计方法
sum, mean, std(标准差),max, min都可以有两种使用方法。argmin argmax分别为最小最大元素的索引
1)可以看作是NumPy对象的成员函数直接使用 e.g.arr.mean()
2)可以看作是NumPy的顶级函数来使用e.g. np.sum(arr)
tips:有一个维度参数axis
SciPy
1.为什么要用SciPy?
在Numpy中我们对两个矩阵求乘积,得到的是对应元素之间相乘的结果,不是真正意义上的矩阵乘法。SciPy提供给了真正的矩阵,以及大量基于矩阵运算的对象和函数。
2.如何变成SciPy对象?
使用scipy.mat()函数,括号里可以是ndarray/list类型的数据。得到的函数值是matrix类型的数据
3.SciPy对象都有哪些功能?
1)求矩阵的逆
2)求方阵行列式的值
3)求矩阵的模(矩阵的模等于每个元素平方加和开根号)
4)求矩阵的特征值和特征向量
5)矩阵的LU分解
Matplotlib
1.为什么要用Matplotlib?
Matplotlib是Python最著名的绘图库。主要用于二维绘图,用于数据的可视化.这两天去处理了一下plt.show()不能显示图像的问题。原因在于linux没有GUI无法显示图像,于是我跑到Windows环境下继续学习了。
Pandas
1.为什么要用Pandas?
它基于NumPy,既有强大的数组处理能力,又有电子表格以及关系型数据库(SQL)的强大数据处理能力;
提供了复杂精细的索引能力,以便更为便捷地完成重塑、切片和切块等操作;
用的最多的Pandas对象是DataFrame,是一个面向列的二维表结构,含有行标和列标;
Pandas可以灵活地处理数据缺失问题,合并及其他出现在常见数据库中的关系型运算。
2.Pandas的用法
其常用的数据结构是Series(序列、一维数组)和DataFrame(二维表格,每一列是一个Series)