1.Python以其开发效率著称,致力用最短的代码完成,但是开发效率并不高,被称为“胶水语言”。含义是耗时的核心代码用C/C++等更高效的语言编写,然后用python来粘合,以此来解决python的运行效率问题。但在数据任务上,python的运行效率和C/C++已经差不多了。
2.python基本命令自己要注意的几点:
print u‘a不等于1‘ #在输出中文前可以加上u
3.python中的数据结构
4个内建的数据结构:List、Tuple、Dictionary、Set,可以统称为容器。
容器里面是什么都行,元素类型不要求相同。 c = [1,2,‘a‘,[3,4]]
list & tuple:
都是序列结构,很相似,但也有不同。
列表可以被修改[],但是元组不可以()
a=[1,2,3] b=(1,2,3)
a[0] = 0 表示将列表a下标为0的修改为0
b[0] = 0 会报错,因为元组不可以被修改
当想复制列表a时,不能仅仅使用 c = a,这样c仅为a的别名,当对c改变时,a也会变。
正确方式: c = a[:] 复制且不影响a
共用函数: cmp(a, b) min(a) len(a) max(a) sum(a) sorted(a)
列表相关的方法:
a.append(1)--将1加到列表a的末尾
a.count(1)--统计列表a中1出现的次数
a.extend([1,2])--将[1,2]追加到列表a末尾
a.index(1)--从列表a中找到第一个一的索引位置
a.insert(2,1)--将1插入列表a索引为2的位置
a.pop(1)--移除列表a中索引为1的元素
!!列表解析!
a = [1, 2, 3]
b = [i+2 for i in a]
dictionary 字典:
映射 列表 索引自己定义 key-value
d = {‘a‘:1, ‘b‘:2} ----- d[‘a‘]
dict([[‘a‘, 1], [‘b‘, 2]])
set 集合:
元素不重复,无序,不支持索引
s = {1, 2, 2, 3} --- 自动去重
s = set([1, 2, 2, 3])
函数式编程: lambda() map() reduce() filter()
lambda() --行内函数
map() -- 先定义一函数,然后用map()命令将函数逐一运用到列表中每个元素,返回一个数组 -- map(lambda x,y:x*y, a, b)
map()函数实现循环命令速度相当于C语言。
而列表解析仍未python中的for循环
reduce() -- 递归运算
reduce(lambda x,y: x*y, range(1,n+1))
filter() --- 过滤
b = filter(lambda x: x>5 and x<8, range(10))
python数据分析工具:
Numpy Scipy Matplotlib Pandas Scikit_Learn Kares Gensim