numpy库
求和相关
使用求和函数sum([axis=0|1])
,根据参数不同可实现不同求和方式。
矩阵整体数据的求和运算
使用无参求和函数,可实现对矩阵整体数据的求和运算。
from numpy import mat
sample = mat([[1, 2], [3, 4]]
sample.sum()
执行结果:。
矩阵按列求和运算
求和函数参数axis=0
时,可实现矩阵按列求和运算。
from numpy import mat
sample = mat([[1, 2], [3, 4]]
sample.sum(axis=0)
执行结果,返回求和结果的行向量。
矩阵按行求和运算
求和函数参数为axis=1
时,可实现矩阵按行求和运算。
from numpy import mat
sample = mat[[1, 2], [3, 4]]
sample.sum(axis=1)
执行结果,返回求和结果的列向量。
求取最大/最小值
使用求取值最大函数max([axis=0|1])
/最小值函数min([axis=0|1])
,可求取矩阵中/行中/列中最大元素,参数意义参照求和函数,不再赘述。
求取矩阵特征值、特征向量
from numpy import mat, linalg
a = mat([[2, 3], [2, 1]])
c, d = linalg.eig(a)
print('特征值:' + c)
print('特征向量:' + d)
执行结果:
特征值的特征向量为。
元素复制
tile
函数可以将原数据向不同维度方向复制。
import numpy as np
a = np.mat([1, 2], [3, 4])
b = np.tile(a, (3, 2))
print(b)
执行结果:
将原始数据的第一维度数据复制3次,将第二维度数据复制2次得到。
统计矩阵中某元素出现次数
通过numpy.sum()
函数添加相关判断条件可实现。
import numpy as np
a = np.ones((4, 4))
a[1: 3, 1: 3] = 0
print(np.sum(a == 0))
上述所构造矩阵为,执行结果为:。
检索矩阵中某元素及其索引
import numpy as np
a = np.ones((4, 4))
a[1: 3, 1: 3] = 0
上述所构造矩阵为,下面使用不同的方法检索该矩阵中的元素。
1.numpy.where()
numpy.where()
函数可分别获取在各个维度上,符合标准的相关元素的索引。该函数的返回结果出发点为数据的维度。
该函数返回结果为个一维行向量,为查询矩阵的维度,每个向量中的值代表在该维度下的索引。比如在第一维度下有向量,则代表查询到4个符合条件的值,这4个元素在第一维度下的索引分别为。
np.where(a == 0)
在本例中构造了一个二维矩阵,因此运行结果返回个一维向量,运行结果:,分别提取数据在各个维度的索引,即可定位数据的索引。由此可知公有个符合条件的数据,其索引(坐标)分别为 。
2.numpy.argwhere()
与上述方法不同的是,numpy.argwhere()
函数返回为符合条件的元素在各个维度上的索引。该函数的返回结果出发点为元素。
该函数返回结果为个维行向量,为符号条件的元素个数,为查询矩阵的维度。比如当前返回结果为,返回两个3维行向量,则表示符合标准的有2个元素,其中第一个元素在各个维度的索引(即坐标)为,第二个元素在各个维度上的索引为。
np.argwhere(a == 0)
本例中构造了一个二维矩阵,符合条件的有个元素,因此运行结果返回个二维行向量,运行结果:,每一个行向量都是一个符合要求的元素在各个维度上的索引(坐标)。
获取矩阵非零元素索引
numpy.nonzero(x)
返回非零元素在各个维度上的索引,等价于numpy.where(x == 0)
import numpy as np
a = np.mat([[1, 2], [0, 4]])
indices_nonzero = np.nonzero(a)
print(indices_nonzero)
所构造矩阵为。
执行结果:,则可知有在矩阵中有3个非零元素,其坐标索引分别为。
sklearn库
官方API文档:https://scikit-learn.org/stable/modules/classes.html
数据预处理
sklearn.preprocessing
包含数据缩放、归一化、二值化等方法。
归一化
MinMaxScaler([feature_range=(m, n), copy=true])
fearete_range
描述转化数据的范围,默认值(0, 1)
copy
是否复制原数据,默认值true
from numpy import mat
from sklearn.preprossing import MinMaxScaler
data = mat([[1, 2], [3, 4], [5, 6]])
scaler = MinMaxScaler(feature_range=(0, 1)).fit(data)
newData = scaler.transform(data)
print(newData)
执行结果,返回归一化后矩阵:
svm分类器
sklearn.svm
模块包含支持向量机算法。
from sklearn.svm import SVC
svm = SVC(kernel='rbf', C=1.0, random_state=0, gamma='auto')
svm.fit(traingData, traingLabel)
svm.predict(testData)