自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 python multiprocessing写生产者和消费者问题

from time import timefrom time import sleepfrom multiprocessing import Process, Queueimport multiprocessing as mpimport randomdef get_process_idx(): return mp.current_process()._identity[0]...

2019-10-26 17:41:30 994

原创 python的multiprocessing的pool.map函数使用方法

顺便记录一下:import numpy as npfrom time import timefrom multiprocessing import Process, Queueimport multiprocessing as mpimport randomdef my_func(x): s0 = time() res = 0 for _ in range...

2019-10-26 16:13:47 9811

转载 python多线程突破百度云限速下载

1、首先得用网页打开你自己的百度云2、点开你所要下载文件的下载链接,如下图3、复制下载网址和文件名,自定义你想下载到的目录,填写到程序中4、运行下列python程序import requestsimport threadingfrom time import timeimport jsonimport redef downloadFile(URL, spos, ...

2018-11-06 21:26:29 8639 3

原创 python解决过河问题

只有一艘船,三个商人三个仆人过河,每一次船仅且能坐1~2个人,而且任何一边河岸上仆人比商人多的时候,仆人会杀人越货。这是一个很经典的过河问题。题解:#允许状态集合,例num=3#S={(x,y)|x=0,y=0,1,2,3;x=3,y=0,1,2,3;x=y=1,2} x是此岸的商人数,y是此岸的仆人数#允许决策集合,例boat_limit=2#D={(u,v)|1<=u+v...

2018-07-22 00:43:33 8911 2

原创 python三元表达式+列表生成式

三元表达式长的样子大概是这样:def max1(a,b): return a if a > b else b #相当于C中的a>b?a:bprint(max1(4,5)) #5然后列表生成式大概是这样:a = [1, 2, 3, 4, 5]b = [i+1 for i in a if i > 3]print(b) #[5, 6]然后三元表达式加入列表生成式里...

2018-06-09 17:19:48 2577

原创 python之re提取字符串中括号内的内容

直接上代码吧:import restring = 'abe(ac)ad)'p1 = re.compile(r'[(](.*?)[)]', re.S) #最小匹配p2 = re.compile(r'[(](.*)[)]', re.S) #贪婪匹配print(re.findall(p1, string))print(re.findall(p2, string))输出:['ac'][...

2018-05-25 20:47:03 88757 4

原创 机器学习之logistic回归

参考资料:点击打开链接不想写解释了,以后再补。我的参数矩阵跟别人的不太一样,代码:import numpy as npimport matplotlib.pyplot as pltdef gradient_descent(x, y, w, col, alpha=10,times=100,eps=1e-8): # 调参有点难受 for i in range(times): ...

2018-05-03 19:35:27 240

原创 python手写多项式拟合、曲线拟合

上篇博客写完之后,终于发现自己线性回归入门!然后洗澡的时候就在想一个问题,线性回归会了,写线性拟合是完全没问题的,但是np库的多项式拟合到底是怎么做出来的呢?突然灵光一闪多项式拟合?多变量的线性回归?好像发现了什么?重新理清一下思路。什么是多项式拟合?对的,这个问题以前没有好好思考过,以前的直观感觉是,不就是给一些x,y的点,让一个多项式去拟合,使得这个多项式的曲线看起来大致符合那些点。等等,好像...

2018-04-26 18:24:08 5728 2

原创 机器学习之线性回归

单变量线性回归说到机器学习的话,很多人首先会想到的是单变量的线性回归,好像大家高中的时候都学过。很多人不理解,这种线性回归的东西跟机器学习有什么关系。其实单变量的话形式很简单:但是让这种函数充分拟合大致有线性关系的离散点,怎么做到呢?这就需要一个损失函数了:其实就是回归函数值与真实的y值的欧式距离求和。想要拟合效果最好,就要使得损失函数最小化。怎么最小化呢?我们很容易看得出损失函数是个凸函数,二阶...

2018-04-22 16:33:28 374

原创 python实现kmp算法(学不会你喷我)

1、首先kmp算法是解决子串匹配问题的,解决这个问题的暴力算法很容易想到。那就是子串的首部和母串的第i个部位对上后,两个串剩下的字符继续匹配,直到匹配不上,子串首部移到母串的i+1的位置上,重复上面的过程。这个算法的复杂度是O(n^2),仔细一想是挺浪费的,要是子串和母串匹配了几个字符了,那么指针还要移回来(原谅我c的说法),整个子串才移动一个位置,这样效率就很蛋疼了。2、那有没有指针尽量不回移的...

2018-03-19 23:19:36 17459 8

原创 python实现7种排序

虽然python做排序这些是比不过c的,可是权当复习下算法也好。import random #用于测试import time # 用于测试def selection_sort(mylist): #选择排序的思路是从头到尾,每次选择未排序中最小那个 #然后把它放到已排序的末尾直到排序结束 length=len(mylist) #能用for不要用while,for...

2018-03-16 23:57:51 377

原创 python实现堆

import random #用于测试class Heap(object):#这是个最小值堆 def __init__(self,mylist=None): self.__size=0 self.__heaplist=[] #两种建堆方式,一种是一个一个插,另一种是直接载入一个列表 if type(mylist)==ty...

2018-03-11 11:57:39 1189

原创 python实现二叉搜索树

class Node(object): def __init__(self,data=None): self._left=None #左节点 self._right=None #右节点 self._data=data #一系列get set方法 def set_left(self,node): self._le...

2018-03-08 18:01:03 1506

原创 python实现埃拉托色尼筛选法(素数筛选法)

def sieve_of_eratosthenes(n):#埃拉托色尼筛选法,返回少于n的素数 primes = [True] * (n+1)#范围0到n的列表 p = 2#这是最小的素数 while p * p <= n:#一直筛到sqrt(n)就行了 if primes[p]:#如果没被筛,一定是素数 for i in ra...

2018-03-05 21:09:18 7799

原创 python图片转化成字符画

这需要用到PIL这个库,win安装的话到时有点不一样,需要打pip install pillow然后直接看代码吧。from PIL import Imageascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")#字符从深到浅length=len...

2018-03-05 19:46:20 3008

原创 python实现单向链表

#因为没有指针,所以要构造一个Node的类class Node: #data和next都是私有变量所以都要get和set函数 def __init__(self,data,next_node=None): self.__data=data self.__next=next_node def set_data(self,data): ...

2018-02-26 23:34:51 416

原创 用python实现队列和双向队列

貌似python的列表太强大了,以至于写这个队列和没写差不多。class Queue:#队列 def __init__(self):#初始化 self.__queue=[] self.__size=0 def __str__(self): return ''.join([str(i) for i in self.__queue]) ...

2018-02-19 23:58:14 1189

原创 用python实现栈

感觉用python写栈特别方便,因为不像c/c++那样要自己写append之类的函数,列表本身已经自带了很多函数,纯当写类的练手吧。code:class Stack: def __init__(self,limit=10):#初始化,栈的最大范围默认是10 #变量名字前有两条下划线,说明是私有变量 self.__stack=[] self._...

2018-02-19 23:00:02 1250

原创 python实现元胞自动机——超简单的流言模型

关于元胞自动机,这个ppt讲得挺不错的:https://wenku.baidu.com/view/86050cb9aeaad1f347933f28.html下面实现一个流言模型:from matplotlib import pyplot as plt#元胞自动机、流言模型def count_rumour(matrix,rumour):#二维矩阵,计算流言的数目 sum_rumour...

2018-02-08 11:06:56 17535 2

原创 python解决0-1背包问题(超直观)

关于背包问题的话,其实百度百科已经讲得很详尽了:https://baike.baidu.com/item/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98/2416931?fr=aladdin但是太详尽了,而且太自顶向下,符号一多更容易搞蒙头。那么我就从自底向上,来得出动态规划的状态转移方程吧。来看一个0-1背包的例子:weight=[2,2,6,5,4

2018-02-06 23:29:48 24770 7

原创 用python快速求解斐波那契数列的某一项

其实斐波那契数列的形式大家都很清楚:然后会解常系数二阶齐次线性递归的都知道,它的特征方程和解为:那么fn的显式形式就很清楚了:那么用python解求某一项就很快了,要用到sympy这个包:import sympy as syn=sy.symbols('n')#约定变量f=1/sy.sqrt(5)*(((1+sy.sqrt(5)

2018-02-06 11:54:58 3028 1

原创 python实现遗传算法(旅行商问题)

网上找到一篇不错的论文:http://www.doc88.com/p-9078235973437.html然后我用python对其做了算法实现,贴代码:from matplotlib import pyplot as pltimport numpy as npimport randomdef coordinate_init(size): # 产生坐标字典 coo

2018-02-05 13:44:04 5280 1

原创 用python可视化模拟退火算法

关于这个算法的解释的话,直接百度百科吧(摊手):https://baike.baidu.com/item/%E6%A8%A1%E6%8B%9F%E9%80%80%E7%81%AB%E7%AE%97%E6%B3%95/355508?fr=aladdin按我个人的理解的话,是解决组合优化的问题是,使用随机化的方法得到新解,如果新解比旧解要好,那么就接受。如果新解没有旧解好,那么也按一定概率

2018-02-04 01:29:13 6932

原创 用python画隐函数图像

显函数的画法的话,一般比较简单,一列x的数组,有对应的函数的话,就很容易弄出一列y的数组,然后通过plt.plot就能画出来了。可是隐函数的话,求出对应的y是比较难的,特别是多个y对应的时候。那么怎么办呢?还是要用到sympy这个库。代码:from sympy.parsing.sympy_parser import parse_exprfrom sympy import plot_impli

2018-02-02 20:38:37 17069 4

原创 python解常微分方程

一、sympy.dsolve首先,感觉最科学的是用sympy的dsolve解常微分方程,直接贴代码import sympy as sydef differential_equation(x,f): return sy.diff(f(x),x,2)+f(x)#f(x)''+f(x)=0 二阶常系数齐次微分方程x=sy.symbols('x')#约定变量f=sy.Functio

2018-02-02 00:03:16 51856 3

原创 python之微积分

一、微分微分的话其实比较简单,手工算其实可以的,但是遇到特别复杂的函数,还是计算机算比较省时间,用到了sympy,举一个例子吧import sympy as syx=sy.symbols('x')#约定变量xy=x**3+10+sy.sin(x)#这个sin是sy的sindy_dx=sy.diff(y,x)#常微分,写成dy_dx=sy.diff(y)也可以t=sy.symbols

2018-01-30 00:42:20 8964 1

原创 python之拟合

一、多项式拟合多项式拟合的话,用的的是numpy这个库的polyfit这个函数。那么多项式拟合,最简单的当然是,一次多项式拟合了,就是线性回归。直接看代码吧import numpy as npdef linear_regression(x,y): #y=bx+a,线性回归 num=len(x) b=(np.sum(x*y)-num*np.mean(x)*np.m

2018-01-29 15:28:08 49446 11

原创 python的scipy实现插值

插值对于一些时间序列的问题可能比较有用。Show the code directly:import numpy as npfrom matplotlib import pyplot as pltfrom scipy.interpolate import interp1dx=np.linspace(0,10*np.pi,num=20)y=np.sin(x)f1=interp1d(

2018-01-29 00:11:32 24439 3

原创 python之networkx库小结

备战数模,还是知道多点好。networkx这个库的话,画网络图贼好用。一、安装安装的话,跟其他包的安装差不多吧。我用的是anaconda就不用装了。其他的话,就用pip install networkx吧,最好的话,需要装下malplotlib这个库。二、建立图import networkx as nxG=nx.Graph()#创建空的简单图G=nx.DiGraph()#创

2018-01-28 21:44:24 50671 13

原创 python矩阵/字典实现最短路径算法(Dijkstra)

前言:好像感觉各种博客的最短路径python实现都花里胡哨的?输出不明显,唉,可能是因为不想读别人的代码吧(明明自己学过离散)。然后可能有些人是用字典实现的?的确字典的话,比较省空间,随便了。改天,心情好,也用字典试下。先贴个图吧。然后再贴代码:_=inf=999999#infdef Dijkstra_all_minpath(start,matrix): length=

2018-01-27 23:57:27 6720 3

原创 python函数极小值

这里用到的是scipy.optimize的fmin和fminboundimport numpy as npfrom matplotlib import pyplot as pltfrom scipy.optimize import fmin,fminbounddef f(x): return x**2+10*np.sin(x)+1x=np.linspace(-10,10,n

2018-01-26 12:13:28 17281 6

原创 python求非线性方程的解/非线性方程组的解

用到的是scipy.optimize中的fsolve和root这两个函数,以下是简单使用:from scipy.optimize import root,fsolveimport numpy as npfrom matplotlib import pyplot as plt#求多元非线性方程组的解def f1(x): return np.array([2*x[0]**2+3*x[1

2018-01-26 11:58:23 25905

原创 利用python解决指派问题(匈牙利算法)

前言:最近在备战数模,看到了指派问题,饶有兴趣,百度上找了很多关于指派问题的解法,很明显用的是匈牙利算法,手工的计算,各种各种的博客都很详尽,大概都了解了具体原理(不懂的人可以自行百度),但是基本找不到算法实现,有了也很难去验证对不对。可能为了省时间吧(不想重新造轮子,懒),就想找找python有没有什么库函数可以实现,找了很多博客什么的,还是找不到。想着指派问题也是0-1规划,线性规划用的也是s

2018-01-25 12:01:57 29528 3

原创 python画二元函数的图像(3D)

直接看代码吧from mpl_toolkits.mplot3d import Axes3Dimport numpy as npfrom matplotlib import pyplot as pltfig = plt.figure()ax = Axes3D(fig)x=np.arange(-2*np.pi,2*np.pi,0.1)y=np.arange(-2*np.pi,2*np

2018-01-23 00:27:58 26315 2

原创 python解线性方程组

from scipy import linalgimport numpy as np# 3x_1+2x_2=5# x_1+x_2=2A=np.array([[3,2],[1,1]])B=np.array([5,2])x=linalg.solve(A,B)print(x)输出结果[1. 1.]

2018-01-22 17:49:43 7602

原创 用python做线性规划

比如要做这道题吧,需要用到scipy库里面的函数scipy.optimize.linprog(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None, bounds=None, method='simplex', callback=None, options=None)直接贴代码吧from scipy import optimize as opim

2018-01-22 17:14:32 43593 8

原创 python网络爬虫之BeautifulSoup库

如果没有这个库的话,请先安装,最简单的安装方式是,打开cmd,输入pip install beautifulsoup41、Beautiful Soup类基本元素基本元素说明Tag标签,最基本的信息组织单元,分别用标明开头和结尾Name标签的名字,...的名字是‘p',格式.nameAttributes标签的属性,字典形式组织,格式:.attrsNavigableString标签内非属性的字符串,中

2018-01-18 23:42:42 204

原创 python网络爬虫之requests库

import requests1、requests库有两个对象,Request对象和Response对象,下表是Response对象的属性属性说明r.status_codeHTTP请求的返回状态,200表示连接成功,404表示失败r.textHTTP响应内容的字符串形式,即,url对应的页面内容r.enconding从HTTPheader中猜测的响应内容编码方式r.apparent_encodin

2018-01-17 20:58:22 812

原创 python random库函数

1、seek() 种子,默认种子是系统时钟2、random()函数,生成0到1的随机小数3、uniform(a,b)生成a到b的随机小数4、randint(a,b)生成一个a到b的随即整数5、randrange(a,b,c) 生成一个a到b,以c递增的数6、choice() 随机返回一个列表里面的元素7、shuffle()将列表的元素随机打乱8、sample(,k)从列

2018-01-16 19:47:25 7564

原创 python字典与集合总结

1、创建字典,如my_dict={'ben':123,'bob':456}冒号前面的是键(key),冒号后面的是值(value),键是不可变的,且是不重复的。2、字典访问print(my_dict['ben'])键(key)作为索引。若字典中没有此键的话就会报错。3、字典添加键值对my_dict['gogo']=7894、len()函数就是返回字典键值对的数量5、key in m

2018-01-16 10:51:47 1227

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除