Kmeans base on Cython

背景 Kmeans 是机器学习比较基础的算法,利用包调用比较容易,未来的算法可以很复杂,但基础都是一样简单的。算法层面尽量写得简单,将优化过程尽量写复杂。由于想使用Cython,先写C++部分,这里需要定义命名空间。头文件代码如下: 代码 KMeans.h #ifndef KMEANS #define KMEANS #include <iostream> #include <Eigen/Dense> using namespace std; using namespace Eigen; namespace cluster { class Kmeans{ public: size_t n_cluster; int max_iter; double...

整理提取图片始

背景 这一切要从我清理手机开始说起,最大占用手机空间的内容当然是手机上的照片。糟糕的是,将照片传到计算机之后,照片就完全乱了,虽然之前也是一团乱麻。想到之前想存图片当壁纸,存了几万张照片,这次可以总结一下,用python对图片做些简单的分类。所以总的说,目标是尽可能提取高清的图片作为壁纸,必要时需要按风格分一下类。其次是手机上不需要的图片且质量差的,或者是无法打开的照片都清理掉。下面是清理过程中的代码: 简单整理图片的思路与实现 准备部分 #与图像处理相关的包 from PIL import Image import cv2 import matplotlib.pyplot as plt import matplotlib.image as mpimg from pylab import * #基础系统和数学包 import math import numpy as np...

Python base skill

标准数据类型 与其他语言十分不一样的是python 封装的几种数据类型 六种数据类型 Number 不用理会浮点型、整数型、为计算带来很多方便,当然不足之处还是运算比较慢,容易不精准计算 String 字符串 从String库提供的字符串处理函数来说,python String相对于其他语言十分的方便和友好 List 列表 主要用[]修饰,比其他语言方便的一点是什么东西都能放,实在是特别好用 Tuple 元组 主要用()修饰,和列表不同之处在于,不可修改 Set 集合 和列表很像,区别是没有重复的项 Dictionary 字典 是我认为除了列表以外最好用的一种容器类型 从Python语言的发明来看,这几种数据类型竟然真的几乎可以覆盖数据工作的方方面面,也就难怪python如此受人欢迎。 而python最为让新手难受,让老手方便的一点,自然是那严格的缩进规则 简单python程序 #python2 print "HelloWorld" #python3 print("HelloWorld")...