python基础 - 机器学习笔记

前言
机器学习以及数据分析的首选语言非python莫属。python含有数据分析和机器学习大量的科学计算包:numpy,scipy,keras,pandas等工具包。
想快速利用python进行数据分析,可以开始先掌握数据分析比较常用和实用的python基础,以便快速展开机器学习,数据分析等相关工作。

python基础 - 机器学习笔记

1.终端运行python文件
$ python desktop/hello.py
Hello World!

2.ipython运行python文件
In [2]: %run desktop/hello.py
Hello World!

3.python组织代码通过空白符来组织代码,而不是大括号{},相同级别的代码缩进相同的空格
吐槽:无论对它是爱是恨,反正有意义的空白符就是python程序员��‍��‍的生活现实

4.python的语句可以不以分隔符(;)结尾

5.python语言的一个重要特点就是其对象模型的一致性。python解释器中的任何数值,字符串,数据结构,函数,类,模块都是python对象。

6.python的注释 # 或者 ”’注释”’

7.python的函数调用和对象方法调用
函数调用: fun(params1,params2,…)
对象方法的调用: obj.fun(params1, params2)

8.python在对变量赋值时,其实是在创建等号右侧对象的一个引用。

9.python在一定程度上可以认为是一种强类型的语言。
eg.

In [3]: ‘5’ + 6

TypeError Traceback (most recent call last)
in ()
—-> 1 ‘5’ + 6

TypeError: must be str, not int

10.isinstance方法 - 检验某个对象的类型是否属于元组中所指定的那些
In [5]: isinstance(1, (int, float))
Out[5]: True

11.引入模块
import datetime
from pandas import Series

12.
is关键字:判断两个引用是否指向同一个对象
is not关键字: 判断两个引用是否不指向同一个对象
==: 判断两个对象的值是否相等
eg.
In [9]: list(‘aaa’) == list(‘aaa’)
Out[9]: True

13.可变和不可变的对象
大部分python对象是可变的,比如列表,字典,Numpy数组以及大部分用户自定义类型(类)。也就是说它们所包含的对象或值是可以被修改的。
而其他的(如字符串和元组等)则是不可变的。

14.标量类型
None
str
float
bool
int
注:复数的虚部使用j表示的

15.字符串
编写字符串字面量是,既可以单引号’, 又可以双引号”, 对于带有换行符的多行字符串,可以使用三重引号”’。
python字符串是不可变的。要修改字符串就只能创建一个新的字符串。

16.布尔值: True和False

17.日期和时间date,time,datetime
from datetime import date, time, datetime
dt = datetime(2011, 10, 29, 20, 30, 21)

dt.minute
Out[23]: 30
In [24]: dt.date()
Out[24]: datetime.date(2011, 10, 29)
In [25]: dt.time()
Out[25]: datetime.time(20, 30, 21)

1>字符串转换为datetime
datetime.strptime(‘20091031’, ‘%Y%m%d’)

2>datetime转换为字符串
dt.strftime(‘%Y%m%d %H:%M’)

3>两个datetime对象的差会产生一个datetime.timedelta类型

18.控制流
if, elif, else

19.while循环

20.pass
pass是python中的“空操作”语句
注: 在开发一个新功能时,常常会将pass用作代码中的占位符

21.异常处理:
try:
pass
except (ValueError, TypeValue):
pass
else:
pass
finally:
pass

22.range函数用于产生一组间隔平均的整数

23.三元表达式:
a = 2 if flag else 5

24.元组
元组是一种一维的,定长的,不可变的python对象序列。
元组的元素可以通过方括号([])进行访问
元组可以通过 加号+ 或者 乘号* 运算符连接起来以产生更长的元组

元组的方法
count它用于计算指定值的出现次数
In [27]: a
Out[27]: (1, 2, 2, 2, 3)
In [28]: a.count(2)
Out[28]: 3

25.列表
列表list是变长的,而且其内容也是可以修改的。它可以通过方括号[] 或者 list函数进行定义

25.添加和移除元素 - list
append方法 - 添加到列表的尾部
insert方法 - eg. list0.insert(1, ‘red’)
pop方法 - 用于移除并返回指定索引处的元素 eg. list0.pop(3)
remove方法 - 用于按值删除元素(第一个符合要求的值对应的元素) eg. list0.remove(‘foo’)

in关键字:
eg.
a = (1, 2, 2, 2, 3)
In [29]: 1 in a
Out[29]: True

26.排序
a.sort(key=len, reverse=False)

27.二分搜索
import bisect
bisect.bisect(a, 2) # 可以找出新元素应该被插入哪个位置才能保持原序列的有序性 (升序的位置)
bisect.insort(c, 6) # 将新元素插入到那个位置

28.序列的切片

29.内置的序列函数
enumerate
sorted
注:AttributeError: ‘dict’ object has no attribute ‘sort’
zip
reversed

29.字典
dict = {}

字典对应的方法:
d.keys()
d.values()
d.items()

d.update({}) - 一个字典可以被合并到另一个字典中去
注:字典的本质上就是一个二元元组集

d.get()和d.pop()可以接受一个可供返回的默认值
注:如果key不存在,并且不设置默认值,get方法默认返回None,而pop则会引发一个异常

d.setdefault()
eg. d.setdefault(key1,[]).append(item)

注: 字典的值可以是任何python对象,但键必须是不可变对象.属于是可哈希性,通过hash函数,你可以判断某个对象是否是可哈希的。

30.集合set
集合支持各种数学集合运算,如并,交,差以及对称差等。
方法
a_set.issubset(b_set) # 判断a_set是否为b_set的子集
s_set.issuperset(b_set) # 判断a_set是否为b_set的超集
== 判断两个集合是否相等

31.列表推导式
[item*2 for item in list0 if item > 3]

32.函数是python中最主要也是最重要的代码组织和复用手段
1>在函数中对全局变量进行赋值操作,那些变量必须用global关键字声明称全局的才行
2>返回多个值 在函数中需要返回多个值时,可以将多个值封装成一个元组或者字典
3>python中的函数页可以看成是一个对象
4>匿名函数 - 也称为lambda函数,这是一种非常简单的函数:仅由单挑语句组成,该语句的结果就是返回值

33.闭包:返回函数的函数

34.柯西化:部分参数的应用
eg.
sum = lambda x,y:x+y
add5 = lambda z: sum(z, 5)

35.生成器
要创建一个生成器。只需将函数中的return替换为yeild即可

36.生成器表达式
eg.
gen = (x ** 2 for x in range(10))

37.文件和操作系统
1> 读取文件内容
with open(path) as f:
lines = f.readlines()
2>将文本写入文件
with open(path, ‘w’) as f:
f.writellines(lines) # type(lines) = list

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值