本学期的模式识别课程需要使用python进行算法实现,在使用的过程,将一些常用/有趣的语句总结一下,以便以后使用。
- numpy中array的常用操作
·数组创建
array() 将列表转换为数组,可选择显式指定dtype
arange() range的numpy版,支持浮点数
linspace() 类似arange(),第三个参数为数组长度
zeros() 根据指定形状和dtype,创建全0数组
ones() 根据指定形状和dtype,创建全1数组
empty() 根据指定形状和dtype,创建空数组(随机值)
eye() 根据指定边长dtype,创建单元矩阵
可以使用“列表生成式”生成列表,再转化为array
y = np.array([0 if (i > k) else 1 for i in x])
详见
·大小操作
获取各个维数使用shape属性,改变大小使用reshape()方法。在reshape参数中-1表示缺省,会根据其他维的情况进行调整。例如变为列向量array_a.reshape(-1,1)
·合并数组
np.append()
np.concatenate()
np.stack()
np.hstack()
np.vstack()
np.dstack()
·数组查找
np.argwhere(y==y_test)
注意返回值的维数,根据需要取用。例如统计符合条件的元素个数
count = np.argwhere(y_test > y).shape[0]
例如将数据按类别取出
x_c1 = x_in[np.argwhere(y_in.reshape(-1, 1) == 0)[:, 0]]
·删除操作
delete()
- 格式化输出
使用.format或者%
- 数据可视化
matplotlib
https://www.cnblogs.com/zhizhan/p/5615947.html (很全的文档)
https://www.cnblogs.com/shanlizi/p/6850318.html (scatter画点)