类别归档:Python

Python is a programming language that lets you work quickly and integrate systems more effectively.

RSS feed of Python

Python计算约数个数

方法I 从1到n枚举,判断是否可以整除

时间复杂度 O(n)

Python代码:

def countDivisors(num):
    return sum(num % i == 0 for i in range(1, num + 1))

方法II 从1到sqrt(n)枚举,判断是否可以整除

时间复杂度 O( sqrt(n) )

Python代码:

def countDivisors(num):
    cnt = 0
    sqrt = int(num ...

继续阅读

利用matplotlib绘制Logistic曲线

标准Logistic函数为:

f(x) = 1 / ( 1 + exp(-x) )

其导函数为:

f'(x) = f(x) * ( 1 - f(x) )

下面使用matplotlib绘制逻辑斯蒂函数及其导函数的曲线。

Python代码:

import numpy as np
import matplotlib.pyplot as plt

a = np.linspace(-10, 10, 1000)
b = 1.0 / (1.0  + np.exp(-a ...

继续阅读

递归计算Ramanujan无穷根式

拉马努金无穷根式是印度数学家拉马努金(Srinivasa Ramanujan)于20世纪初提出的。

f(x) = sqrt(1 + (x + 1) * f(x + 1))

上面的函数是一个递归式,下面用Python编程计算该函数的值。

Python代码:

import math
class Ramanujan(object):
    def sum(self, d, md):
        if d > md:
            return 0
        return math.sqrt(1 + (d + 1) * self ...

继续阅读

Python实现图像与字符串互转

在存储或者传输图像时,我们经常需要将图像转换成字符串。

与其他编程语言一样(比如Java),Python也可以实现将图像用字符串进行表示。

使用Python进行转换非常的简单,关键部分就是使用“base64”模块,它提供了标准的数据编码解码方法。

图像转换成字符串

Python代码:

import base64
 
with open("t.png", "rb") as imageFile:
    str = base64.b64encode(imageFile.read())
    print str

输出:

iVBORw0KGgoAAAANSUhEUgAAAuAAAACFCAIAAACVGtqeAAAAA3
NCSVQICAjb4U/gAAAAGXRFWHRTb2Z0d2FyZQBnbm9tZS1zY3Jl
ZW5zaG907wO/PgAAIABJREFUeJzsnXc81d8fx9+fe695rYwIaa
...

字符串转换成图像

Python代码:

fh = open("imageToSave.png", "wb ...

继续阅读

使用scikit-learn KMeans实现验证码的字符切分

字符切分是实现机器识别验证码的一个必要步骤。

使用PIL读入图像,进行二值化处理(Binarize),然后利用sklearn.cluster中的kmeans进行字符切分,最后用matplotlib.pyplot输出结果。

参考:http://dsp.stackexchange.com/questions/23662/k-means-for-2d-point-clustering-in-python

Python代码:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from PIL import Image

##############################################################################
# Binarize image data

im = np ...

继续阅读