1. for i in range( a, b, c) a为首项 c为公差 不超过b-1
2. 行内函数
f = lambda x:x+2 定义f(x) = x+2
g = lambda x,y:x+y
3. 数据结构——list tuple dictionary set
列表可以被修改,元组不可以
列表是=[] 元组是=()
可直接转换 list('ab') 或 tuple('ab')
a.count(1)
#列表解析
b = [i+2 for i in a] #a是一个列表
转换为dict —— dict 或者dict.fromkeys
①不重复 ②无索引
格式为= { }
4. 函数式编程
b = [i+2 for i in a] 对应的map
b = map(lambda x : x+2,a)
reduce(lambda x,y:x*y,range(1,n+1))
b = filter(lambda x>5 and x<8 , range(1,10))
也可使用列表解析
b = [i for i in range(1,10) if i >5 and i <8]
5. 使用pandas要显示所有属性列或行时
#显示所有列
pd.set_option('display.max_columns', None)
#显示所有行
pd.set_option('display.max_rows', None)
#设置value的显示长度为100,默认为50
pd.set_option('max_colwidth',100)
numpy、scipy、matplotlib、pandas、statsModels、scikit-Learn、Kears、Gensim、Pillow(原PIL)
一、 Numpy
多维数组功能
基本操作
二、Scipy
最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理、图像处理、常微分方程求解
Scipy依赖Numpy
三、matplotlib
主要用于二维绘图
中文不显示的问题
plt.reParams['font.sans-serif'] = ['SimHei'] # 如果中文字体是SimHei
负号显示为方块
plt.rcParams['axes.unicode_minus']= False
四、Pandas
基本数据结构 Series和DataFrame
着眼于数据的读取、处理和探索
1. Series:
序列 类似一维数组
有index用于定位元素,index可以为数字,也可以为其他,类似主键
创建序列 s = pd.Series([1,2,3],index = ['a','b','c'])
2. DataFrame:
表格 类似二维数组
每一列都是一个series 本质是series的容器
每个series有唯一的表头,用于区分 多个series的index相同
创建表 d = pd.DataFrame([1,2,3],[4,5,6],colume = ['a','b','c'])
也可以直接 d = pd.DataFrame(s)
d.head()
d.describe()
pd.read_excel('filename')
pd.read_csv('filename',encoding = 'utf-8)
补充操作
pd.notnull(x) 得到x的不为空的true和false
x[pd.notnull(x)] 可得到x中不为空的项 list的话只能根据int来进行索引 series可以通过true和false
map接收一个序列 list或者numpy的array
dataFrame的排序 dataFrame.sort_values(['confidence','support'], ascending = False)
可用dataFrame[[index1,index2]] 访问
d.prod(axis=1,numeric_only=True) 每行的每个元素累乘
五、StatsModels
着眼于数据的统计建模分析,支持与pandas进行数据交互
依赖于pandas和pasty
六、scikit-Learn
机器学习相关库,提供完整的机器学习工具箱,包括数据预处理、分类、回归、聚类、预测和模型分析等
依赖于numpy、scipy、matplotlib
1. 所有模型的接口:
model.fit():训练数据 fit(X,y)——监督学习 fit(X)——非监督学习
2. 监督学习
model.predict(x_new) 预测新样本
model.predict_proba(x_new) 预测概率
model.score() 得分越高越好
3. 非监督学习
model.transform() 从数据中学习到新的“基空间”
model.fit_transform() 从数据中学到新的基并将这个数据按照这组基进行转换
七、Keras
人工神经网络 基于theano
不仅可以搭建普通的神经网络,还可以搭建各种深度学习模型,如自编码器、循环神经网络、递归神经网络、卷积神经网络等
model.predict()给出概率
model.predict_classes()给出分类结果 格式是[[y1],[y2],[y3]```[yn]] 可以model.predict_classes(x).reshape(len(x)) 变为[y1,y2,y3,```,yn]的格式
八、Gensim
处理语言方面的任务,如文本相似度计算,LDA,Word2Vec