美文网首页
《利用Python进行数据分析》-1 对上本书的一些补充

《利用Python进行数据分析》-1 对上本书的一些补充

作者: Yayamia | 来源:发表于2022-08-26 11:57 被阅读0次

重要的Python的库

  1. NumPy: 快速高效处理数组ndarray
  2. Pandas: 处理DataFrame(一个面向列——column-oriented的二维表结构)和Series(一维的标签化数组对象)
  3. matplotlib:可视化
  4. Scipy:解决科学计算中各种标准问题域的包
  5. scikit-learn:机器学习
  6. statsmodels:统计分析

一些tricks

  1. jupyter中也可以使用tab补全
  2. 在变量前或者后用?可以显示对象的信息,包括函数等。对于函数,使用??还可以显示源代码。当然,?也可以作为通配符。
  3. %run可以运行所有Python程序:%run xxx.py,如果想让脚本访问Ipython已经定义过的变量,可以用%run -i
  4. jupyter中,可以使用%load将脚本导入到一个代码格中:%load xx.py
  5. None是Python的空值类型。如果一个函数没有明确的返回值,就会默认返回None。None也常作为函数的默认参数。
  6. python中的三元表达式可以将if-else放在一句:value = true-expr if condition else false-expr。三元表达式中的if和else可以包括大量的计算,但只用True部分会被执行。

关于数据结构的一些补充

  1. tuple()可以将任意序列或者迭代器转换为元组
  2. 可以用+把元组/列表串联起来,也可以拆分元组
a = (1, 3, "aa")
b = ("dd", "pp")
c = a + b
c

(1, 3, 'aa', 'dd', 'pp')

m, n, l = a
n

3
  1. 使用count计算某个值出现的频率,适用于元组和列表
a = [1,2,3,5,7,5,5,5,5,5]
a.count(5)

6
  1. 如果已经定义了一个列表,用extend方法可以追加多个元素。通过加法将列表的串联计算量比较大,因为要新建一个列表,并且要复制对象。用extend追加元素,尤其是到一个大列表中,更是可取。
x = [4, None, 'foo']
x.extend([6, 45, 4])
x

[4, None, 'foo', 6, 45, 4]
  1. 关于切片


  2. 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']

相关文章

网友评论

      本文标题:《利用Python进行数据分析》-1 对上本书的一些补充

      本文链接:https://www.haomeiwen.com/subject/krjtnrtx.html