自己开始学python时的一些笔记,当时写了word文档,现在在博客里整理一下,有点乱,也有点长,希望能帮助大家,也方便自己查询(ps:只适合初学者,大佬直接跳过就OK了)。

1.Python中的列表,非常适合实现栈的入栈和出栈操作:

列表的append()方法对应入栈操作,列表的pop()方法对应出栈操作

s=[]

s.append(1)#在列表的末尾填上元素1

s.append(2)

print(s)#结果为[1,2]

s.pop() #返回列表最后一个元素并删除

2.队列核心操作:尾部添加,首部删除

3.如果一个树的每个节点,都至多有两个子节点,则成为二叉树。

如何使用嵌套列表实现二叉树:以根节点,左子树,右子树为顺序,依次写出。

4.字典类型{}操作函数和方法

5.python第三方库,jieba,中文分词,其中最重要的函数就是jieba.lcut()可以以列表形式将一句话返回具体的分词结果。

6.文本词频统计

# 此程序用来统计英文著作中出现的最多的单词前几名及对应的次数

>>> dic={'apple':1,'book':2,'money':10}

>>> dic.items()

dict_items([('apple', 1), ('book', 2), ('money', 10)])

>>> items=list(dic.items())

>>> items

[('apple', 1), ('book', 2), ('money', 10)]

>>> items.sort(key=lambda x:x[1],reverse=True)

>>> items=list(dic.items()) #counts是一个字典,items将字典以列表形式返回,items就是一个列表

>>> items.sort(key=lambda x:x[1],reverse=True)

>>> items

[('money', 10), ('book', 2), ('apple', 1)]

>>> items[0]

('money', 10)

>>>

1)lambda功能:创建匿名函数(lambda只是一个表达式,而def则是一个语句)

这里,lambda匿名函数和matlab中的匿名函数@一样,fun=@(x,y) x+y

2) items函数,将一个字典以列表的形式返回,因字典是无序的返回的列表也是无序的

>>> dic={'apple':1,'book':2,'money':10}

>>> dic.items()

dict_items([('apple', 1), ('book', 2), ('money', 10)])

>>>

7.文件的打开和关闭

文件打开=open(,)

文件关闭

.close() #这里变量名是文件句柄

文件句柄.read(2) #一次读入文件的前两个字节,只要读入的不为空就继续读入,属于分批处理。

上图为分行读入,逐行处理

8.二维数据的遍历:二维数据中每一个元素也是列表类型

9.词云

(1)先引入词云库,wordcloud

(2)wordcloud.WordCloud()生成一个词云对象赋给变量c

(3)使用c.generate()将一段文本加载到词云中

(4)c.to_file是输出词云文件

w设置了宽度为1000,高度为700,字体为微软雅黑;

中文文本需要自己分词,这里使用第三方库jieba,jieba.lcut()得到的是一列表,用.join()方法将列表以空格划分赋给generate,再输出词云文件,下图是效果

10.k-近邻算法(kNN)

工作原理:存在一个训练样本集,样本集中每个数据都存在标签。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,算法提取样本集中特征最相似数据的分类标签,一般只选择数据集中前k个最相似的数据。

一个简单程序如下

定义一个空字典,取k为3,首先,k=0,sortedDistIndicies[0]=2,然后labels[2]=B,

11.分类器的错误率:分类器给出错误结果的次数除以测试执行的总次数。

12.  1)strip()函数默认删除首尾所有空字符 ‘\n\t空格‘

>>>s='\n 0000this is string example0000wow!!!0000\n \t'

>>> s.strip()

'0000this is string example0000wow!!!0000'

2)#首尾端'0'被删除,中间不动

>>> t='0000this is string example0000wow!!!0000'

>>> t.strip('0')

'this is string example0000wow!!!'

split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)

13.readline()方法用于从文件读取整行,包括换行字符\n。若指定了一个非负的参数,则返回指定大小的字节数,包括\n字符。

文件test.txt的内容为:

1:xinyingyuexinguowan

2:xinyingyuexinguowan

3:xinyingyuexinguowan

for i in range(5):

print(i,end=’,’)

结果:0,1,2,3,4,

14.from os import listdir

原型为os.listdir(path)# listdir()函数用来获取指定目录的内容。Eg:trainingFileList=listdir('D:/python/trainingDigits')

15.如下

myDat是个列表,要求列表中的每个元素也是列表,且长度相同。[example[0] for example in myDat]是将myDat中每一个列表的第一个元素提取出来。

16.列表中[:0]是将列表置成空列表,列表名[:1]是将列表的第一个元素赋给列表。列表名[:n]是将列表中的前n个元素取出。列表名[n:]是将索引n及n以后的元素都取出。

17.count()是列表中的元素次数统计函数。

18. a|b  #a,b是两个集合,a|b是两个集合的并集;list(a)是将一个集合变成一个列表。

列表名.index(列表中的元素)#返回列表中的元素所在的索引值

19.对于一个文本字符串,python的string.split()方法可以按空格将其拆分,缺点是包含了标点。

20. random.uniform(x,y)#方法将随机生成一个实数,它在[x,y)之间,x是随机数的最小值,包含该值,y是随机数的最大值,不包含该值。

上图随机生成的3*3数组和mat(数组)后虽然显示的东西一样,但类型不一样,用mat函数转换为矩阵之后才可以进行一些线性代数的操作。

21. m,n=shape(A)#得到矩阵A的大小,即行数与列数

ones((3,1))得到的是3行1列的全1数组,shape(shuzu)[0]得到的是数组的行数。

ones(5) 结果: array([ 1.,  1.,  1.,  1.,  1.]) #生成全为1 的行向量数组

22.下图是实现的logistics回归问题,要注意:坐标x,y的对应维度要相等,x=np.arange(-3.0,3.0,0.1) shape(x)的结果是(60,),数组行向量y要将其转置为列向量,y=np.array(y).transpose()

23.Python 中定义私有变量只需要在变量名或函数名前加上“_ _”两个下划线。在外部,使用  _类名_ _变量名即可访问双下横线开头的私有变量了。

24.A是一个矩阵,100行3列,则A[0]即为矩阵的第一行,A[3]即为矩阵的第4行数值。矩阵的第100行和一个数组相乘,结果为对应元素分别相乘

25.sigmoid函数导函数的取值范围是多少,首先g(z)=1/(1+exp(-z)),其导数是g’(z)=exp(-z)/(1+exp(-z))**2,取值范围就是(0,1/4]

26.一个数乘个列表list,是把列表重复这么多次,一个数乘个数组array,才能把每个元素都乘对应的数。

27.支持向量机的优缺点:

28.如下图,定义函数即使是pass,没有return,函数依旧会返回一个None对象。类型为noneType,但type(f)就是一个函数类型。

29.python的getattr,hasattr,和setattr()方法详解

30.字典添加元素

31.isinstance(object, classinfo)

如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。

32. param1参数在本例中对应的传入参数apples,而后边的'bananas', 'cherry', 'kiwi'均被打包进param2中,因为在函数定义时param2的前边有*号表示这是一个不定长定位参数,会将后边的不定长个定位参数打包为一个tuple。因为B选项正确。

33.join函数:连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串。

#对序列进行操作(分别使用' '与':'作为分隔符)

>>> seq1=['hello','good','boy','doiido']

>>>print' '.join(seq1)

hello good boy doiido

>>>print':'.join(seq1)

hello:good:boy:doiido

#对字符串进行操作

>>> seq2="hello good boy doiido"

>>>print':'.join(seq2)

h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o

#对元组进行操作

>>> seq3=('hello','good','boy','doiido')

>>>print':'.join(seq3)

hello:good:boy:doiido

#对字典进行操作

>>> seq4={'hello':1,'good':2,'boy':3,'doiido':4}

>>>print':'.join(seq4)

boy:good:doiido:hello

#合并目录

>>>importos

>>> os.path.join('/hello/','good/boy/','doiido')

'/hello/good/boy/doiido'

34.字典中的key值不能为字典。字典中key,可以是字符串,数字等不可变类型,它们都是hashable的。而字典,列表等可变类型是不能够作为key值的。因此最后一句crates[boxes]中的boxes类型为dict,会直接报错。

35.字典中confusion[1]和confusion[1.0]是一样的,会重新赋值。

36.    数据保存和加载。

37.定义在类中的方法之外的变量是(类变量)。在Python类中,公有/私有变量是通过_ _进行区别,而在方法之外的变量均为类变量,实例变量均在方法中进行定义且以self.开始。

38.list对象仅能与list对象进行相加。与其它类型对象相加均会报出如unsupported operand type(s) for +: 'int' and 'list'的错误。列表l1=[1,2,3],则表达式1+l1结果异常。

39.fromkeys是字典对象提供的方法,用于创建一个新字典,以第一个参数中的元素做字典的键,第二个参数为字典所有键对应的初始值。

{}. formkeys((1,2),3)返回{1:3,2:3}

40.python中的子类调用父类的方法,需要使用函数super。在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时我们又希望能同时实现父类的功能,我们就需要调用父类的方法了,可通过使用super来实现。

41.Python中,关键字__ __可以定义一条异常,引发异常(raise)。python会自动引发异常,也可以通过raise显式地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。

42.python3中每一个字符的长度都被计算为1(包括标点)。字符串"人生苦短,我用Python"的长度是多少?答案是13。

43.chr()函数用一个范围在range(256)内的(就是0~255)整数作参数,返回一个对应的字符。unichr()跟它一样,只不过返回的是Unicode字符。ord()函数是chr()函数(对于8位的ASCII字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值,如果所给的Unicode字符超出了你的Python定义范围,则会引发一个TypeError的异常。

44.关于raw_input()和sys.stdin.readline()的区别:

sys.stdin.readline( )会将标准输入全部获取,包括末尾的'\n',因此用len计算长度时是把换行符'\n'算进去了的,但是raw_input( )获取输入时返回的结果是不包含末尾的换行符'\n'的。

45.字符串逆序方法:

46.input().split(‘ ’)将输入的字符串按空格分割成了列表。列表也可以使用[::-1]实现逆序输出。

47.在python3里面,map()的返回值已经不再是list,而是iterators,所以想要使用,只用将iterator转换成list即可,比如list(map())。

48. mat可以将数组转化为列表类型,相当于矩阵。

49.列表不能dataMat[ : ,0]这样用,先将其转换为矩阵才能这样用,得到矩阵的第一列。min得到第一列中最小的值。

50.rand()生成0,1内的随机数

51.数组过滤

52.矩阵名.A将一个矩阵转换为array数组。

53. nonzeros(a)返回数组a中值不为零的元素的下标。

二维数组的话,即b2[0,0],b2[0,2],b2[1,0]的元素不为0。

具体实现

54. 列表可以转化为数组和矩阵,tolist()实现功能将数组、矩阵转换为列表。对于一维矩阵,tolist()[0]才能转化为列表。

55.global能将函数内的局部变量变成全局变量。

56.for i in (1,2,3):此时,i取值1,2,3.

57.python中字符串前面加一个r代表原始字符串标识符;=属于引用,foo变的话,foo1也变,foo1变foo也变;元组属于不可变类型。

58.a.count(b)用来统计在字符串a中字符b出现的次数。

59.bin(N)将十进制转换为二进制,oct(N)把十进制转换为八进制,hex(N)是把十进制转换成16进制。

60.对于二维列表,len(列表名)得到列表的行数,len(列表名[0])得到列表的列数。

61.替换字符串中的某个字符,用replace,str=”xxy”,即str.replace(“x”,”z”)  returns zzy

62.代码中判断变量是否为空None,有以下三种写法:

(1)if x is None:

(2)if not x:   #如果x为False,则not x为True,则执行if语句

(3)if not x is None:

63.index用于返回列表中值对应的索引。

64._ _init_ _()方法称为构造方法,功能是只要实例化一个对象,这个方法就会在对象被创建时自动调用。

65.列表的pop()方法用于删除列表的元素,并返回该元素,不指定索引默认删除最后一个元素。

66.issubset用于判断一些集合元素是否在指定集合中,是则返回True,否则返回False.

67.列表可以指定位置利用insert插入元素,例如z.insert(2,78)则将78插入到索引为2的位置。

68.列表可以指定得到前n个元素,具体如下图,z=[列表元素][:2]表示取列表的前两个元素,前零个元素为空。

69.dict.update(dict2)即将字典dict2添加到字典dict中。若添加的字典中的键在原字典中已存在,则改变其键值。

70.语句H1 = [frozenset([item*2]) for item in freqSet]中freqSet先取集合{2,3},for item in freqSet取值为2,3将其处理成不可变的单个集合元素。

71.集合可以进行相减操作。

许多事都不是因为喜欢才做,而是因为责任。--------2019.2.23

72.字典中,字典名[键]即得到键对应的值。当键为data,target时都是字符串型,要加双引号,即键必须是不可变类型。

73.函数原型,vstack(tup),参数tup可以是元组,列表或者numpy数组。

74.python位操作符左移和右移运算

左移<

eg:3<<2将3左移2位。3的二进制为00000011向左移动两位,变成

00001100,十进制为12。

数学意义:没有溢出的前提下,对于正数和负数,左移n位就相当于乘以2的n次方。

右移>>:按二进制形式把所有的数字向右移动对应的位数,低位移出舍弃,高位的空位正数补0,负数补1。

eg.11>>2:11的二进制为00001011,将其向右移动两位,低位移出舍弃,高位因为11是正数,补0,即00000010,换成二进制是2。即右移一位相当于除以2,右移n位相当于除以2的n次方。这里,结果取的是商,而不是余数。

75.tile将对应的点复制对应的次数,并返回数组array类型。

76.7和5按位异或,7的二进制为00000111,   5的二进制为00000101,异或操作规则,

0^0=0,   0^1=1,   1^0=1   1^1=0 ;0xFFFFFFFF是16进制中边界数,其值转换为十进制是4294967294,正数和它做与操作,结果还是这个正数,负数和它做与操作,结果就是0xFFFFFFFF本身。

77.64行是按照字典键对应的值进行从大到小的排序。

78.对字典取列表,得到以字典的键为元素的列表;对字典的items()取列表,形式如下。

79.log()不能直接使用,需要导入math模块,底数可以设置,默认为e.例如以2为底,8的对数。

列表尾部添加元素。

80.下面119行语句可以得到信息增益最大的特征,比较的每一对数值的第二个元素。如果简单的取max,将得到第一个数最大的。

81.python中的.loc和.iloc的区别。loc:通过行标签索引数据,例如,df.loc[1]表示索引出第一行的数据。df.loc[‘ a’]是按标签索引,而iloc只能通过行号索引,df.iloc[0]是对的,而df.iloc[‘a’]是错误的。详细见如下博客。

82.value_counts()是查看表格中某列有多少个不同值的方法,并返回对应的个数。.sort_values(ascending=False)是将数据从大到小排列。

数据分析软件SPSS链接:https://pan.baidu.com/s/1pfGuDzfpLSubQwPCPQbHmA密码:0d4k

1)MXNet:基于神经网络的深度学习的计算框架,python的第三方库

2)Panda3D

python lcut()_python基础知识点(一)相关推荐

  1. python数据分析知识整理_Python基础知识点总结:数据分析从0到大师必Mark的一篇!(上)...

    原标题:Python基础知识点总结:数据分析从0到大师必Mark的一篇!(上) TK | 作者 LearnKu | 翻译 https://www.freecodecamp.org/news/learn ...

  2. python describe函数_Python基础知识点梳理2,推荐收藏

    接着昨天的基础知识点继续梳理,昨天的 Python基础知识梳理1 8.函数 1.定义函数: 使用关键字def来告诉python你要定义一个函数 接着指出函数名:如下面函数名是-greet_user ( ...

  3. 布尔值_Python基础知识点手册——布尔值及布尔运算

    布尔值及布尔运算 布尔值有 True 和 False,布尔类型是整数类型的子类型,所以整数的运算都适用布尔值运算. issubclass(bool,int) True True + 1 2 ~True ...

  4. 51自学网python爬虫_Python爬虫知识点梳理

    学任何一门技术,都应该带着目标去学习,目标就像一座灯塔,指引你前进,很多人学着学着就学放弃了,很大部分原因是没有明确目标,所以,在你准备学爬虫前,先问问自己为什么要学习爬虫.有些人是为了一份工作,有些 ...

  5. python数据分析知识点_Python基础知识点总结:数据

    首先, 什么是Python? 用python作者Guido van Rossum自己的话来说,Python是这样的一门语言: 它是一门高级编程语言, 它的核心设计理念是让所有代码变得更易阅读,并给开发 ...

  6. python变量命名规则思维导图_python基础知识点思维导图

    基础知识 python基础知识很简单,在解决问题中实践,在实践中学习. 希望python语言只是工具,这个工具可能你开始使用还不那么熟练,但用一段时间,你就能很自然和熟练地表达你想表达的想法了.特别是 ...

  7. python的基础知识点总结_Python 基础知识点总结

    本篇基于Python 2.7.9 根据廖雪峰Python教程整理 URL:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb4931 ...

  8. python 类的知识点整理_Python基础知识点整理,看下你能答对几个

    python高薪就业(视频.学习路线.免费获取)​shimo.im 1.单行注释和多行注释 1. 单行注释 #. 2. 多行注释,前后三个单引号或双引号'''... '''; "" ...

  9. python的知识点运用_Python基础知识点

    Python 中的变量赋值不需要类型声明. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 等号( = )用来给变量赋值. 等 ...

最新文章

  1. sed学习系列---第3/3部分
  2. OpenCV之ml 模块. 机器学习:支持向量机(SVM)介绍 支持向量机对线性不可分数据的处理
  3. C++11库中 steady_clock , system_clock和high_resolution_clock的区别
  4. 基于IdentityServer4 实现.NET Core的认证授权
  5. linux启动mqtt_linux下安装MQTT服务器 - EMQTT
  6. linux gcc 制作动态库
  7. es 怎么嵌入 算法模型_快速ES-RNN: ES-RNN算法的GPU实现
  8. 卢克沃顿对于湖人作用
  9. python中xlrd写操作_Python读写操作Excel模块_xlrd_xlwt_xlutils
  10. 中如何设置电气栅格_游戏中的设置界面如何设计?
  11. iphone 3G 刷机错误解决集锦
  12. 怪兽充电启动招股:2020年业绩下滑五成,小米、高瓴参与认购
  13. URL 长链地址转短链 URL地址
  14. 【CANoe】车载网络的相关概述
  15. 序列化Serializable serialVersionUID的作用
  16. duilib最新版地址
  17. 双屏怎么快速切换鼠标_双屏切换软件 双屏设置时如何设置显示器的顺序
  18. 51nod 1526 分配笔名(字典树)
  19. MySQL inet aton函数,MySQL IP转数字函数 INET_ATON() INET_NTOA()
  20. [2019HDU多校第四场][HDU 6617][D. Enveloping Convex]

热门文章

  1. 什么是压缩文件/压缩包?
  2. 给女朋友道歉的java代码_如何诚恳的跟女朋友道歉?
  3. 【BUG日记】【VUE】【JAVA】后端已经添加上@CrossOrigin,前端还是显示Access to XMLHttpRequest...
  4. 物理实验不确定度的数据处理
  5. 彻底关闭删除macOS苹果系统下的.DS_Store文件方法
  6. 中国电信 5G 泛智能终端白皮书
  7. php案例:json新增数据
  8. 中国电信2021秋招笔试
  9. 文本检测与识别技术的应用现状及产业案例
  10. UVa 10849 - Move the bishop