Python与机器学习前言——Python常用语法

    xiaoxiao2021-03-25  115

    为什么要学Python呢,为了打好机器学习这场仗,需要有件趁手的兵器~这就是Python。 作为可执行的伪代码,实现起来的便利性就不多说了,关键是它的开源代码多、环境好、有机器学习的库:scikit-learn,当然,还有强大的字符串处理功能。 从《利用Python进行数据分析》附录开始(基础语法)从与常用的语言的区别开始谈起。本文注重Python常用并与C语言有区别的语法。 1.

    a = [1,2,3] b = a a.append(4)

    此时a与b都等于[1,2.3,4]。即“=”表示a和b都指向同一个对象:[1,2,3] 2. 函数可对其参数进行改变操作。 C中函数调用的时候只是对形参的值进行复制使用,而Python的函数是纯粹把形参拿过来了

    def append_element(some_list,element) some_list.append(element) data = [1,2,3] append_element(data,4)

    此时data就确确实实等于[1,2,3,4]了。 3. isinstance:了解对象的类型

    isinstance(5,int) #ture isinstance(4.5,(int,float)) #true isinstance(4.5,int) #flase

    4. isiterable:判断某对象是否可迭代

    isiterable([1,2,3]) #true isiterable(5) #flase

    5. import 这个东西可将其他.py文件中的函数和定义好的变量引用在当前.py中,用这个就可以把各种库引入进来了 from numpy import* # 把numpy库中所有东西都引用过来 6. is:用于判断两个引用是否指向同一个对象

    a = [1,2,3] b = a c = list(a) #list可新建列表 a is b #true a is not c #flase a == c #true

    7. 虚数虚部用 j 表示 cval = 1+2j 8. 字符串表示方法:

    a = 'meachine learning' b = 'big data' c = """i love meachine learning #用于带换行 """

    Python字符串是不可以改变的,想修改字符串只能新建。 9. 字符串转换与处理 许多Python对象都可以通过str函数转换为字符串:

    a = 5.6 s = str(a) #s = '5.6'

    字符串可以被当做某种序列类型(如列表、元组)来处理:

    list(s) #['5' , '.' , '6'] s[:2] #'5.'

    10. pass 什么都不执行,在开发新程序中用来占位以保证程序完整性。 11. 三元表达式

    value = true-expr if condition else false-expr

    它和下面这种格式效果一致:

    if condition value = true-expr else: value = false-expr

    12. 元组构成的元组:

    nested_tup = (4,5,6),(1,2) #nested_tup : ((4,5,6),(1,2))

    tuple可将任何序列或迭代器转换为元组

    tuple([4,2,0]) #(4,2,0) tup = tuple('string') #tup : ('s','t','r','i','n','g') tup[0] # 's'

    元组元素不可修改,但可以添加:

    tup = tuple(['foo',[1,2],True]) tup[2] = False #TypeError tup[1].append(3) #tup : ('foo',[1,2,3],True)

    元组拆包:

    tup = 4,5,(6,7) a,b,(c,d) = tup # d : 7

    元组方法:count

    a = (1,2,3,2) a.count(2) # 2

    13. 列表 可通过方括号[]或者list函数定义:

    a_list = [2,3,7,None] tup = ('1','2','3') b_list = list(tup) # b_list : ['1','2','3'] b_list[1] = '4' #b_list : ['1','4','3']

    14.

    b_list.append('dearf') # b_list : ['1','4','3','dearf'] b_list.insert(1,'dearf') # b_list : ['1','dearf','4','3','dearf'] b_list.remove('dearf') # b_list : ['1','4','3','dearf'] '3' in b_list # True b_list.extend(7,8,(2,3)) # b_liist : ['1','4','3','dearf',7,8,(2,3)]

    在相同效果下extend比“+”的操作要快得多 15. sort

    a = [7,2,1,4] a.sort() # a : [1,2,4,7] b = a.sorted() # b : [1,2,4,7] a不变 sorted('hourse race') #[' ','a','c','e','h','o','r','r','s'] c = ['mmm','m','mm'] c.sort(key = len) # c : ['m','mm','mmm'] a.sort(reverse = True) # a : [7,4,2,1]

    16. dict 在机器学习这种需要处理文本的情况下,字典的重要性相当大。字典本质上是一个二元元组集。

    empty_dict = {} dict = {'a':'some value' , 'b':[1,2,3,4]} dict[7] = 'an integer' #dict : {7:'an integer' , 'a':'some value' , 'b':[1,2,3,4]} 'b' in dict #True del dict[7] #删除dict中7:'an integer' ret = dict.pop('a') #删除dict中'a':'some value'并将此值赋给ret

    17. 列表推导式 相当简洁的过滤一个列表(字典、集合)

    strings = ['a','as','bat','car','dove'] [x.upper() for x in strings if len(x)>2] #['BAT','CAR','DOVE']

    18. 函数 和C不同,Python的函数可以返回多个值甚至字典:

    def f(): a=5 b=6 return{'a':a ,'b':b}

    函数亦为对象 对一个字符串进行数据清洗: states=[’ Alabama ‘,’Geogria!’,’ Geor’,’south car##’,’West s?’] 方法1:

    import re def clean_strings(strings): result = [] for value in strings: value = value.strip() value = value.sub('[!#?]',' ',value)#移除标点符号 value = value.title() result.append(value) return result

    方法2:将作用在字符串上的一系列操作做成列表

    def remove_punctution(value) return re.sub('[!#?]',' ',value) clean_ops = [str.strip ,remvoe_punctution , str,title] def clean_strings(strings ,ops): result = [] for value in strings: for function in ops: value = function(value) result.append(value) return result

    19. lambda(匿名)函数

    def apply_to_list(some_list ,f) return [f(x) for x in some_list] ints = [4,0,5,6] apply_to_list(ints ,lambda x:x*2)

    20. 生成器 直到迭代完成后再一起输出每一次迭代的值,xrange生成的就是一个生成器(range生成的是一个列表对象)

    gen = (x ** 2 for x in xrange(100)) #这是一种生成器表达方式

    功能和下面这个冗长的生成器等价:

    def _make_gen() for x in xrange(100): yield x**2 gen = _make_gen()
    转载请注明原文地址: https://ju.6miu.com/read-17160.html

    最新回复(0)