tf idf
tf:term frenquency词的频率 出现的次数
idf:inverse document frequency 逆文档频率
log(总文档数量/该词出现的文档数量)
重要性程度
tf idf
tf:term frenquency词的频率 出现的次数
idf:inverse document frequency 逆文档频率
log(总文档数量/该词出现的文档数量)
重要性程度
countvectorizer没有参数
文本都是放在列表里面的可迭代对象
性能瓶颈,读取速度
格式不太符合机器学习要求数据的格式
可用数据集:
Kaggle
UCI
scikit-learn
机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测
1. 解放生产力
2.解决专业问题
3.提供社会便利
递归函数阶乘计算
def factorial(n):
if n ==1:
return 1
else:
return n*factorial(n-1)
result = factorial(5)
print(5)
递归函数
递归函数,类似于数学归纳法。
每个递归函数必须包含两个部分:
1.终止条件
2.递归步骤
栈先进后出
eval()函数
执行一个字符串
eval(source[,globals[,locals]])
globals:可选,必须是字典
locals:可选,任意映射对象
lambda表达式
lambda表达式可以用来声明匿名函数。只允许包含一个表达式,不能包括复杂语句。该表达式的计算结果就是函数的返回值。
lambda 形参1,形参2,形参3: <表达式>
运算结果是表达式的运算结果
f= lambda a,b,c:a+b+c
print(f(2,3,4))
可变参数
可变数量的参数
1. *,将多个参数收集到一个'元组'对象中。
2. **,将多个参数收集到一个'字典'对象中。
强制命名参数
参数的几种类型
位置参数
按照位置传递的参数
默认值参数
为某些参数设置默认值,这些参数传递时可选。
命名参数
按照形参的名称传递参数
传递不可变对象是浅拷贝
浅拷贝和深拷贝
浅拷贝:不拷贝子对象的内容,只拷贝引用
深拷贝:子对象的内存也全部拷贝,子对象修改不影响源对象
参数的传递
从实参到形参的赋值,引用传递。
1.可变对象,直接作用于原对象本身
2.不可变对象,生出新的对象空间
可变对象有:字典、列表、集合、自定义对象等
不可变对象:数字、字符串、元组、function等
函数也是对象,内存底层分析。
文档字符串
help(函数名._doc_)打印函数的文档字符串
函数用法和底层分析
函数的基本概念
1. 一个程序由一个个任务组成。函数就是代表一个任务或一个功能
2. 函数是代码复用的通用机制
python函数的分类
1. 内置函数
2. 标准库函数
3. 第三方库函数
4. 用户自定义函数
函数的定义和调用
核心要点
def 函数名([参数列表]):
#文档说明
函数体/若干语句
绘制不同颜色的多个同心圆
import turtle
t = turtle.Pen()
my_colors=('red','green','pink','black')
t.speed(10)
for i in range(10):
t.penup()
t.goto(0,-i*10)
t.pendown()
t.color(my_colors[i%len(my_colors)])
t.circle(15+i*10)
turtle.done()
推导式创建序列
列表推导式
[表达式 for item in 可迭代对象 if 条件判断]
[x*2 for x in range(1,20) if x%5==0]
cells = [(row,col) for row in range(1,10) for col in range(1,10)] #可以使用两个循环
字典推导式
{key : value for 表达式 in 可迭代对象}
my_text ='i love you, i love he, i love 123'
char_count ={c:my_text.count(c) for c in my_text}
集合推导式
{key for 表达式 in 可迭代对象}
b={x for x in range(1,100) if x%9 ==0}
生成器推导式(生成元组)
一个生成器只能运行一次
使用zip()并行迭代
zip()对多个序列进行并行迭代