LAMBDA
在python里习惯把短的函数写成lambda算子, 常常为了把一些小函数写成只有一行的lambda算子而费劲脑汁, 下面收藏几个之前写程序想到的lambda算子.(陆续补充中)
在手写数字识别训练算法时用到的, 如: 1->[0,1,0,0,0,0,0,0,0,0], 即把label(0-9)映射为一个label向量.
labelVector = lambda x: [i==x and 1 or 0 for i in range(10)]
统计一个二维list中所有元素的个数, 如: [[1,2,3],[2,3,4,5],[6,7,8,9,0]], 将返回10
getPixels = lambda x: sum([len(i) for i in x])
统计两个维度相同的list中的相同元素的个数, 在分类算法中用来计算分类的正确率, guesses是预测的类标集合, labels是实际的类标集合.
[guesses[i]==labels[i] for i in range(len(guesses))].count(True)
使用numpy科学计算包做PCA降维时用到的, linalg.eig求得矩阵的特征值和特征向量, 其中特征值和特征向量是一一对应的, 但是与matlab的特征值函数不同的是, linalg.eig求得的特征值是未排序的, 所以: