PythonLearn
头发光了你就强了
Neural Network and Machine Learning
展开
-
Ubuntu virtualenv构建local Python环境
其实没有墙按照官方手册就能搞定,奈何有有墙,选项–no-download一定要开原创 2020-09-07 11:10:52 · 218 阅读 · 0 评论 -
deep learning batch normalization实现之cudnn
代码不方便上传,只能传图片。kernel头文件:kernel cpp文件太大 传不了测试文件:原创 2020-08-12 16:42:30 · 387 阅读 · 0 评论 -
解析python字符串类型为什么不支持改变
在C++中,如果不适用STL库的String类,字符串可以用char数组表示:例如:char str[5]=“absde”;//报错,溢出,因为c++字符串末尾有一个\0应该写成这样char str[5]=“abcd”;//OKstr[0]=‘f’;//ok好,现在换pythonstr_a=“abcd” #okstr_a[0]=‘f’ #error为什么?因为在python中,...原创 2018-10-26 14:52:19 · 603 阅读 · 0 评论 -
python学习之列表对象实现原理解析
l=[1,2,3]id(l[0])1652911120id(l[1])1652911152id(l[2])1652911184注意:此列表里全是整数对象,而且每个对象占32位,且地址连续l=[1,‘ab’,3]id(l[0])1652911120id(l[1])49144808id(l[2])1652911184...原创 2018-10-26 15:35:11 · 161 阅读 · 0 评论 -
python学习之元组对象实现机制解析
myTuple=(1,2,3,4)id(myTuple[0])1652911120a=1id(a)1652911120元组第一位元素的地址和整形变量a的地址是一样的,说明他们都指向常量1所在的地址空间,常量是不可重写的,所以元组的元素不可重写,但元组却可以重新赋值,此特性和C++的指针常量完全一样:指向的内存地址区域不可重写,但却可以重新指向其他内存区域...原创 2018-10-26 16:39:52 · 388 阅读 · 0 评论 -
python学习之模块导入
作为C++程序员,最近因为工作需要,学习了python。第一次接触脚本语言,难免有觉得新奇的地方,python程序没有main()函数,只有主文件,文件里就一条print()语句也可运行。标准Python是CPython。在python命令行(不是系统命令行!)下,要导入.py文件,必须进入.py文件所在的文件位置,具体方法为:>>>imprt os>>>...原创 2018-10-24 14:43:01 · 116 阅读 · 0 评论 -
python学习之模块导入
作为C++程序员,最近因为工作需要,学习了python。第一次接触脚本语言,难免有觉得新奇的地方,python程序没有main()函数,只有主文件,文件里就一条print()语句也可运行。标准Python是CPython。在python命令行(不是系统命令行!)下,要导入.py文件,必须进入.py文件所在的文件位置,具体方法为:>>>imprt os>>>...原创 2018-10-24 14:43:01 · 119 阅读 · 0 评论 -
python学习之动态类型原理浅析
请看代码:a=3id(a)1871146064a=4id(a)1871146096id(3)1871146064对于同一个变量a,当a的值不同时,地址也不同,可见对变量a重新赋值,实际上是把a指向了另一对象。这与C/C++很不同,C/C++对非指针变量改变是改写变量对应物理内存的内容,而不是重新指向另一个内存区域。再看以下代码:inta=16t...原创 2018-10-31 15:40:31 · 515 阅读 · 0 评论 -
python内存机制之引用计数器
看代码:a=3id(a)1871146064b=3id(b)1871146064c=3id©1871146064id(3)1871146064这里,变量a,b,c与常量3都共享同一内存,也就是说,常量3被a,b,c分别引用,常量3的计数器为3,当变量a,b,c引用其他python对象时,a,b,c所指的内存地址也随之改变,当变量3的引用计数器清...原创 2018-10-31 16:08:37 · 392 阅读 · 0 评论 -
python引用之坑
看代码:a=3id(a)1871146064b=3id(b)1871146064c=3id©1871146064id(3)1871146064这里a,b,c和常量3都指向同一内存区看代码:id([1,2,3])4578760id(list([1,2,3]))52379464list3=[1,2,3]id(l...原创 2018-10-31 16:16:39 · 175 阅读 · 0 评论 -
python学习之深拷贝与浅拷贝
看代码:list1=[1,2,3,[4,5]]list2=list1id(list1)52447176id(list2)52447176这种形式list1与list2指向同一地址浅拷贝:import copylist1=[1,2,3,[4,5]]list2=copy.copy(list1)id(list1)52315848id(list2)...原创 2018-10-31 17:06:50 · 88 阅读 · 0 评论 -
python学习之值比较(==)与地址比较(is)
看代码:inta=1intb=1inta == intbTrueinta is intbTrueid(inta)1871146000id(intb)1871146000看代码:list1=[1,2,3]list2=[1,2,3]list1 == list2Truelist1 is list2Falseid(l...原创 2018-10-31 17:17:21 · 1334 阅读 · 0 评论 -
python深拷贝之字符串例外
我在前面一篇博客讲到,对象通过copy函数可以获取通值不同地址的对象,今天发现,由于python的内存机制,对于数字和字符串,并不适用,看代码:s1=“abc”s2=“abc”id(s1)34487184id(s2)34487184s3=s1[:]id(s3)34487184import copys4=copy.copy(s1)id(s4)3...原创 2018-11-04 12:40:29 · 920 阅读 · 0 评论 -
python之从控制台接收的数据类型
使用python的input()函数从控制台接收的数据类型为string,与C++不同原创 2018-11-04 13:29:12 · 797 阅读 · 0 评论 -
python改变字符串
python的字符串名称是一个指针,指向一个只读内存区域,对字符串改变只能通过重新指向新内存空间的做法原创 2018-11-04 13:49:18 · 130 阅读 · 0 评论 -
python字符串format高级用法之传入元组
format方法可接受任意长度参数,请看代码:somelist=list(‘SPAM’)“first={0},last={1},middle={2}”.format(somelist[0],somelist[-1],somelist[1:3])parts=somelist[0],somelist[-1],somelist[1:3]“first={0},last={1},m...原创 2018-11-04 16:31:41 · 1723 阅读 · 1 评论 -
python之对象内存复用
python核心类型分为以下两类:不可变类型:数字,字符串,元组,不可变集合可变类型:列表,字典,可变集合而python只对三位及以下整数和短字符串对象进行复用,请看代码:52377904a=3b=3id(a)1544055888id(b)1544055888a=11b=11id(a)1544056144id(b)1544056144...原创 2018-11-04 17:54:28 · 703 阅读 · 0 评论 -
python私有变量
只有在构造函数里,以__开头的变量才是私有变量,看代码:class A:def init(self):self.data1=1self.data2=2self.__data3=3self.__data4=44def fun1(self):print(self.__data4)self.data5=5object_a=A()object_a.__data4=4print(ob...原创 2018-11-08 20:20:54 · 543 阅读 · 0 评论 -
python简单爬虫代码示例
目标网站:http://www.jueshitangmen.info/tian-meng-bing-can-15.html代码:from urllib.request import urlopenfrom bs4 import BeautifulSouphtml1=urlopen(“http://www.jueshitangmen.info/tian-meng-bing-can-15.ht...原创 2018-11-14 15:48:50 · 1465 阅读 · 0 评论 -
python读写文件固定代码格式
import ospath=“D:/a/b/c/d/test.txt”file_path,file_name=os.path.split(path)if not os.path.exists(file_path):os.makedirs(file_path)file=open(path,“a”)原创 2018-11-12 17:17:04 · 535 阅读 · 0 评论 -
python简单爬虫代码示例2
目标网站:view-source:http://www.weather.com.cn/weather/101270101.shtml代码:from urllib.request import urlopenfrom bs4 import BeautifulSoupnewshtml1=urlopen(“http://www.weather.com.cn/weather/101270101.s...原创 2018-11-14 17:13:19 · 1021 阅读 · 0 评论 -
python之SAX解析XML文档
XML文档:War, ThrillerDVD2003PG10Talk about a US-Japan warAnime, Science FictionDVD1989R8A schientific fictionAnime, ActionDVD4PG10Vash the Stampede!ComedyVHSPG2Viewable bo...原创 2018-11-12 19:16:06 · 449 阅读 · 0 评论 -
python之DOM解析XML文档
XML文档:War, ThrillerDVD2003PG10Talk about a US-Japan warAnime, Science FictionDVD1989R8A schientific fictionAnime, ActionDVD4PG10Vash the Stampede!ComedyVHSPG2Viewable bo...原创 2018-11-12 19:24:39 · 197 阅读 · 0 评论 -
python之ElementTree解析XML文档
获取属性值:attrib获取节点值:text获取节点名:tagXML文档:War, ThrillerDVD2003PG10Talk about a US-Japan warAnime, Science FictionDVD1989R8A schientific fictionAnime, ActionDVD20034PG10Vash the ...原创 2018-11-12 19:48:10 · 117 阅读 · 0 评论 -
python PIL的基本操作
#操作1#读取图片*************************************img = Image.open(“pic1.jpg”)print(type(img),img)#输出:<class ‘PIL.JpegImagePlugin.JpegImageFile’> <PIL.JpegImagePlugin.JpegImageFile image mod...原创 2018-11-19 15:34:03 · 328 阅读 · 1 评论 -
用python PIL绘制验证码
from PIL import Image,ImageDraw,ImageFontimport random#随机字母def ranChar():return chr(random.randint(65,90))#随机颜色1def ranColor1():return (random.randint(65,255),random.randint(65, 255),random.r...原创 2018-11-19 16:55:40 · 114 阅读 · 0 评论 -
python之matplotlib绘图基本操作
import matplotlib.pyplot as pltimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dx = np.linspace(0,2*np.pi,100)y1,y2 = np.sin(x),np.cos(x)plt.title(“sin&cos”)plt.xlabel(“x”)plt.ylabe...原创 2018-11-19 17:40:11 · 505 阅读 · 1 评论 -
python OpenCV基础操作1之在图片上画图形
import cv2img = cv2.imread(“pic.jpg”)cv2.imshow(“image”,img)cv2.waitKey(0)cv2.destroyAllWindows()画线greeen = (0,255,0)cv2.line(img,(0,0),(300,300),greeen,3)cv2.imshow(“image”,img)cv2.waitKey(0...原创 2018-11-19 19:01:58 · 6102 阅读 · 1 评论 -
python之类实例属性
情况一:class A:def init(self):passdef setname(self,who):self.name=whoobject_a=A()print(object_a.name)此时会报错, ‘A’ object has no attribute ‘name’,类对象A没有属性“name”情况二:class A:def init(self):passde...原创 2018-11-19 19:56:39 · 300 阅读 · 0 评论 -
python列表切片天坑!!!
列表切片操作会产生元对象的一个拷贝,也就是说会产生新的对象,对新对象操作不会对原对象产生影响看代码:x=[1,2,3,4,5]x[1:3][2, 3]表达式x[1:3]返回一个新对象,我们用一个变量来接受看看x=[1,2,3,4,5]y=x[1:3]x[1, 2, 3, 4, 5]y[2, 3]这里正常,我们再改变y的值看看x会不会受影响x=...原创 2018-11-22 20:36:09 · 534 阅读 · 0 评论 -
python与c++梯度下降法求现行回归函数参数速度比拼
经测试,在1000000循环条件下,C++比python快至少5倍废话不多说,直接上代码,有兴趣的把代码拷去验证验证python代码:import random_xs = [x*0.01 for x in range(0,100)]#print(_xs)_ys = [0.3 * i + 0.5 for i in _xs]i=0while i < len(_ys):if i%...原创 2018-11-27 21:04:08 · 165 阅读 · 0 评论 -
python之matplotlib画二元函数图像
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, ...原创 2018-11-28 15:51:15 · 11125 阅读 · 0 评论 -
numpy基础操作
import numpy as npprint(np.version)# print(“使用列表生成一维数组”)# data = [[[1,2]]]# x = np.array(data)# print(x)# print(type(x))print(x.dtype)print(x.ndim)print(x.itemsize)print(x.flags)print(x.rea...原创 2018-12-07 19:53:11 · 766 阅读 · 0 评论 -
python之numpy数组的本质
numpy数组的本质其实是一个多叉树,因为numpy是由C实现的,那直接上C语言例如:int a[2][3][4];树的根节点为a(指针)树的第一维子节点有2个,a[0],a[1],为指针,指针指向的内存放的还是指针,也就是指针的指针树的第二维子节点有6个a[0][0],a[0][1],a[1][2],a[1][0],a[1][1],a[1][2],为指针,指向的内存放的是值树的第三维...原创 2018-12-05 21:12:40 · 289 阅读 · 0 评论 -
python之tensorflow的variable本质解析
tensorflow采用C实现,variable就是C语言的变量,tensorflow规定变量必须初始化其实是减少变量的不确定性,在C语言里面,变量可以不初始化,但为初始化的变量的值不可预估看代码:a=tf.Variable([0,0,0]) //这其实就相当于C的变量的定义,int a[3];b=tf.assign(a,[1,2,3]) //这其实就是变量的赋值,a[3]={1,2,3}...原创 2018-12-08 20:27:47 · 760 阅读 · 0 评论 -
python之tensorflow的constant对象本质解析
由于tensorflow使用c实现,所以鼻炎要与C联系起来tenorflow的python版本的constant对象就是C的const变量或者数组且看代码:import tensorflow as tfa = tf.constant(12,dtype=tf.int32) #cosnt int a=12;b = tf.constant(12.0,dtype=tf.float32) #cos...原创 2018-12-08 21:15:36 · 2358 阅读 · 0 评论 -
python之tensorflow的variable对象的赋值操作注意事项
前面文章已经说过variable对象的本质,在C里面,是支持浮点数和整数类型数据相互赋值的,只不过某些情况存在精度损失,例如:int a=0;a=55.5555555;此时a的值为55再看:float b=0.0;b=55;此时b的值为55.0再看python代码:import tensorflow as tfa=tf.Variable(1.22)op3=tf.global_...原创 2018-12-08 21:26:20 · 1045 阅读 · 0 评论 -
tensorflow保存与使用数据之坑
先上结论:如果tf.Variable要保存,一定要定义名字。以保存两个二维数组为例子,看代码:import tensorflow as tfimport numpy as npw = tf.Variable([[11,12,13],[22,23,25]],dtype=tf.float32)b = tf.Variable([[7,8,9],[1,2,3]],dtype=tf.float32...原创 2018-12-13 17:15:13 · 420 阅读 · 0 评论 -
tensorflow保存变量的本质
前面博客已经说过,tf.Variable的本质就是C++变量或者数组,所以在声明变量时,最好自己给定变量一个名字,如下代码:import tensorflow as tfimport numpy as npw = tf.Variable([[11,12,13],[22,23,25]],dtype=tf.float32,name=“w”)save = tf.train.Saver()wit...原创 2018-12-13 17:32:45 · 267 阅读 · 0 评论 -
tf.Variable同名之坑
tf.Variable就是C++变量看以下代码:data1=tf.Variable([1,2,3],dtype=tf.int32,name=“a”)data3=tf.Variable([1,2,3],dtype=tf.int32,name=“a”)data4=tf.Variable([1,2,3],dtype=tf.int32,name=“a”)相当于在tensorflow框架里执行以下...原创 2018-12-13 18:05:53 · 456 阅读 · 0 评论