重要的Python的库
- NumPy: 快速高效处理数组ndarray
- Pandas: 处理DataFrame(一个面向列——column-oriented的二维表结构)和Series(一维的标签化数组对象)
- matplotlib:可视化
- Scipy:解决科学计算中各种标准问题域的包
- scikit-learn:机器学习
- statsmodels:统计分析
一些tricks
- jupyter中也可以使用tab补全
- 在变量前或者后用
?
可以显示对象的信息,包括函数等。对于函数,使用??
还可以显示源代码。当然,?
也可以作为通配符。 -
%run
可以运行所有Python程序:%run xxx.py
,如果想让脚本访问Ipython已经定义过的变量,可以用%run -i
- jupyter中,可以使用
%load
将脚本导入到一个代码格中:%load xx.py
-
None
是Python的空值类型。如果一个函数没有明确的返回值,就会默认返回None。None也常作为函数的默认参数。 - python中的三元表达式可以将if-else放在一句:
value = true-expr if condition else false-expr
。三元表达式中的if和else可以包括大量的计算,但只用True部分会被执行。
关于数据结构的一些补充
-
tuple()
可以将任意序列或者迭代器转换为元组 - 可以用
+
把元组/列表串联起来,也可以拆分元组
a = (1, 3, "aa")
b = ("dd", "pp")
c = a + b
c
(1, 3, 'aa', 'dd', 'pp')
m, n, l = a
n
3
- 使用
count
计算某个值出现的频率,适用于元组和列表
a = [1,2,3,5,7,5,5,5,5,5]
a.count(5)
6
- 如果已经定义了一个列表,用
extend
方法可以追加多个元素。通过加法将列表的串联计算量比较大,因为要新建一个列表,并且要复制对象。用extend
追加元素,尤其是到一个大列表中,更是可取。
x = [4, None, 'foo']
x.extend([6, 45, 4])
x
[4, None, 'foo', 6, 45, 4]
-
关于切片
-
enumerate()
:迭代一个序列时,可用此找到当前项的位置\序号\索引
集合
- 集合是无序的不可重复的元素的集合。可以当做是只有键没有值的字典
-
创建方式:
①set([1, 2, 3, 45, 6])
②{1, 2, 3, 45, 6}
推导式
推导式是Python最受喜爱的特性之一。它允许用户方便的从一个集合过滤元素,形成列表,在传递参数的过程中还可以修改元素。
形式:[expr for val in collection if condition]
等同于:
result = []
for val in collection:
if condition:
results.append(expr)
举例:
a = [1, 2, 3, 5, 7, 5, 5, 5, 5, 5]
b = [x + 100 for x in a if x > 3]
b
[105, 107, 105, 105, 105, 105, 105]
同样:
- 字典推导式:
dict_comp = {key-expr : value-expr for value in collection if condition}
- 集合推导式:
{expr for val in collection if condition}
strings = ['a', 'as', 'bat', 'car', 'dove', 'python']
loc = {val : index for index, val in enumerate(strings)}
loc
{'a': 0, 'as': 1, 'bat': 2, 'car': 3, 'dove': 4, 'python': 5}
匿名函数lambda
python支持一种被称为匿名的、或Lambda函数。它仅由单条语句组成,该语句的结果就是返回值。它是通过lambda关键词定义的,这个关键词没有别的含义,仅仅是说“我们正在声明的是一个匿名函数”
def short_function(x):
return x + 1
equiv_anon = lambda x : x + 1
它在数据分析工作中非常方便,很多数据转换函数都是以函数作为参数,直接传入lambda比写完整的函数声明要少很多字。
strings = ['a', 'as', 'bat', 'car', 'dove', 'python']
#如果想要根据各字符串不同字母的数量进行排序
strings.sort(key=lambda x: len(set(x)))
strings
['a', 'as', 'bat', 'car', 'dove', 'python']
网友评论