NumPy基本使用
|
|
与Python列表不同,NumPy通过下标产生的数组,与原数组共享数据空间
|
|
NumPy的matrix类
- 多维数组的运算,NumPy缺省情况下不使用矩阵运算
- 使用NumPy的matrix类创建的是矩阵对象,加减乘除运算缺省采用矩阵方式计算。
- 由于NumPy中同时存在ndarray和matrix对象,容易弄混,有违Python显式优于隐式的原则,因此并不推荐在较复杂的程序中使用matrix。
需要将一维数组当做行向量或列向量进行矩阵运算时,推荐先使用reshape函数将一维数组转换为二维数组
|
|
np.dot()
- 对于一维数组:内积(两数组元素对应下标元素的乘积和)
- 对于二维数组:两数组的矩阵乘积
- 对于多维数组:dot(a, b)[i, j, k, m] = sum(a[i, j, :] * b[k, :, m]),即结果数组中的每个元素都是数组a的最后一维上的所有元素与数组b的倒数第二位上的所有元素的乘积和。
np.inner()
- 对于一维数组:内积(两数组元素对应下标元素的乘积和)
- 对于多维数组:inner(a, b)[i, j, k, m] = sum(a[i, j, :] * b[k, :, m]),即结果数组中的每个元素都是数组a的最后一维上的所有元素与数组b的倒数第二位上的所有元素的乘积和。
np.outer()
只按照一维数组进行计算,若传入多维数组,则将此多维数组展平为一维数组之后进行计算。
线性代数子库linalg
- inv()函数计算逆矩阵
- solve()函数求解多元一次方程组。solve()函数有两个参数a和b。a是一个NxN的二维数组,b是长度为N的一维数组,solve函数找到一个长度为N的一维数组x,使得a和x的矩阵乘积等于b,数组x就是多元一次方程组的解。
其他Python模块
SciPy
包括 统计、优化、整合线代模块、傅里叶变换、信号和图像处理、常微分方程求解器等。
NLTK
NLP中常用
Scikit-Learn
基本功能
分类,回归,聚类,数据降维,模型选择,数据预处理
Scikit-learn requires:
- Python (>= 2.7 or >= 3.3),
- NumPy (>= 1.8.2),
- SciPy (>= 0.13.3).