美文网首页
机器学习训练营---第一周总结

机器学习训练营---第一周总结

作者: a762b3c4bd19 | 来源:发表于2017-07-16 16:10 被阅读28次

    知识点列表:

    1. python基础数据类型
    2. 变量和表达式
    3. if , elif , else , continue , break流程控制
    4. for , while循环控制
    5. 字符串操作
    6. list , tuple , set , dictionary 容器操作 (重点)
    7. 文件读/写
    8. 面向对象
    9. 切片的使用,字符串,list都可以用
    10. 高阶函数的使用:
      a. map
      b. reduce
      c. filter
      d. sorted
      e. lambda
      f. zip
      g. eval

    本周主要是学习python基础知识,能熟练运用python,对于我这种没有python基础的iOS程序员来说,压力确实挺大的,毕竟要一周内从不会到能代码。但是我不怕,因为这次是下决心来学习人工智能,就算困难也要克服。

    由于之前有学习iOS和android的经历,所以非常明白学习好python基础知识的重要性,就像是练功夫要先扎马步一样,只有python的基础知识学习牢固了,后面做爬虫,机器学习才有底气。所以这一周严格按照课程安排学习python的基础知识,虽然群里有同学学的很好,都在看微积分,线性代数等等一些高级的知识,但是我没有因此改变我的节奏,继续稳扎稳打的学习。

    其实最大的挑战就是合理安排好时间,为此,我搬到了地铁站附近,上班时间比以前每天节省了1个小时左右,而且地铁也不用换乘,在地铁上有60%-80%的时间也是可以听课和做练习的,每天晚上8点到10点上课,这个时间段必须抽出来,为此一些聚会,饭局全部推掉,早上5点40起床,骑自行车锻炼身体,买早餐,7点上班,从家到地铁站和从地铁站到公司的路程全部骑自行车,保证每天8公里左右的运动时间。工作时间高效的完成工作,珍惜每一分钟的时间,减少喝水的次数和杂事的数量,专注完成每天的工作,以保证充分的学习时间。

    周末要赶火车参加线下课,今天是第一次线下课,收获非常大,有了互动,自己也问了寒老师问题,得到答案并明白了问题的本质原因,之后的每一次课都要坚持来。当然有的同学也说了成本问题,来回的火车票加酒店的钱,3个月下来,比总共的学费都要贵,但是我认为是值得的,换个角度想“ 假如我从事人工智能的工作3年后年薪达到了500万,那么还会觉得现在这些火车票和酒店钱贵吗? ”所以我从来没有动摇过。

    下面详细整理一下学习笔记:

    1. python基础数据类型:
      a. 整形int
      b. 浮点型float
      c. 数据类型强制转换
      d. 四则运算
      e. 字符串
      f. bool
      g. 可以用 type ( x ) 查看x的类型
    2. x = 12 x是一个变量,python中声明变量的时候不需要指定变量的类型,跟iOS不同
      a. x ** 2 表示x的平方, x ** 3表示x的3次方 x += 1 相当于 x = x + 1
      b. python中没有 i ++ 可以用x += 1表示
    3. if 后必须跟一个返回bool值的表达式
      a. if else 后必须跟冒号,python中没有else if 可以用elif代替
      b. 简单的for循环 for name in names:
      c. range用法
      i. range(1,10) 会输出 1到9
      ii. range(1,20,5) 会输出 5,10,15 最后面那个5是指每隔5个输出一次,如果不设置,默认为1
      d. enumerate用法
      i. 会把数组转化为带编号的的list
      ii. 用for取出编号和值 for i,name in enumerate(names):
      e. 列表推导式
      i. ["stupid"+name for name in names]
      ii. 上面的列表推导式会生成一个list,里面每个元素都会在原来的基础上加上stupid
      iii. 列表推导式分为两个部分 for前面的,和for后面的
    4. while循环:
      a. while后面跟的表达式要返回true,才会执行while里面的代码,也是加上冒号。
      b. while中可以配合break和continue使用比如
      c. i = 0
      d. while true:
      i. print(i)
      ii. i += 1
      iii. if i >= 10:
      1. break
      e. 执行上面的代码,与奥break的时候就会跳出while
    5. string字符串操作:
      a. 双引号和单引号都可以 “sqc”'sqc'
      b. 但是双引号里的字符串再用引号要用单引号,单引号里用双引号,要成对出现
      c. 输出多行字符串,用''' ''' 或 """ """ 三个双引号单引号给括起来例如
      i. ''' sqc
      ii. facebook
      iii. google '''
      d. \n 换行符 \t tab键
      e. 字符串拼接要用 + 加号例如
      i. "hello" + " " + "world"
      f. w[0] 会输出字符串的第一个字符
      g. w[-1] 会输出字符串的最后一个字符
      h. python中索引是有负数的,表示倒着数, -1就是倒数第一个
      i. 切片:
      i. w[1:3] 表示把字符串索引为1切到索引为3,注意,包含1,但不包含3
      ii. w[:3]表示从0开始切
      iii. w[:100000]表示切到最后一个,100000超过索引即取最后一个
      j. w.upper()字串变为大写(注意这样不会把原来的字符串变为大写,而是生成一个新的字符串,如果要用就拿一个变量去接收)
      k. w.lower()变为小写
      l. w.capitalize() 首字母变为大写
      m. w.strip()去掉两边的空格
      n. w.lstrip()去掉左边的空格
      o. w.rstrip()去掉右边的空格
      p. w.split() 默认按空格拆分为一个list 也可以指定字符 w.split(',') 这样就是按逗号拆分
      q. w.find('a')找到a出现的位置
      r. w.replace(',' , '|') 把所有的逗号都替换成 |
    6. list : names = ["sqc", "facebook", "google"] 列表
      a. list也可以用切片
      b. names[1:3] 从索引为1切到索引为3
      c. list("facebook") 把一个字符串的每一个字母强制转化为list
      d. names.append('book') 在list的末尾添加一个元素
      e. names + namestwo 可以生成一个新的list
      f. 'sqc' in names 判断一个元素是否在list里面
      g. names.insert(3 , 'me')在索引三的位置上添加一个元素
      h. names.pop() 返回list中最后一个元素,并且在names中删除最后一个元素
      i. names.count('sqc') sqc在list中出现了几次
      j. names.reverse() 把list倒序
      k. del names(3) 删除索引为3的那个元素,注意用del关键字删除
    7. set : 集合,无序,每一个元素不重复
      a. new_set = set()
      b. 用来把list中的元素去重复 :
      i. a = list('sqcsqc')
      ii. s = set(a)
      iii. new_a = list(s)
      iv. 这样就完成了list去重复的操作
    8. tuple : 很像list,区别是不可变,不能添加和修改
    9. dictionary : 里面都是key value parts
      a. fruit['apple'] 取出apple对应的那个值
      b. fruit.keys() 取出所有的key
      c. fruit.values() 取出所有的value
    10. function:
      a. function 的构成: def 关键字,加方法名 ,加小括号, 加冒号
      b. 小括号里可以加一个参数或多个参数,也可以不加参数
      c. def add(x,y):
      d. 如果是不定长度的参数,可以用星号代替 def add (args): (args 的类型会是一个tuple)
      e. 可以把list当作是一个参数传过去 例如:
      i. r = [2,5]
      ii. add(
      r)
      iii. 这样的话,2和5就自动对应到x,y上了
    11. 面向对象:这部分理解还算好,因为OC也是面向对象语言,所以学历起来比较好
      a. 每个成员方法中的第一个参数一定是self
    12. 迭代器 :iterator
      a. x = iter([1,2,3,4])
      b. print(next(x))
      c. print(next(x))
      d. print(next(x))
      e. 这样会输出1,2,3, next的方法会一直执行下一个元素, 超过list的个数时就会报错
    13. 生成器 : generator
      a. yield 关键字 , 相当于有一个游标,当指向这个游标的时候再取值,类似c语言的指针
    14. 文件读写:
      a. csv文件I/O
      b. 打开一个文件 in_file = open("data/sample.csv","r") "r" 是读权限
      c. 读取数据 csv_reader = csv.reader(in_file)
      d. in_file.close() 用完记得关上
      e. 把数据写入文件: out_file = open("output.csv","w") "w" 是写权限
      i. out_writer = csv.writer(out_file)
      ii. out_writer.writerow(["sqc","google","facebook"])
      iii. out_file.close()

    相关文章

      网友评论

          本文标题:机器学习训练营---第一周总结

          本文链接:https://www.haomeiwen.com/subject/sdatkxtx.html