进阶 | 数据科学家提高效率的 40 个 Python 技巧

本文介绍了40个Python编程技巧,帮助数据科学家提高工作效率,包括列表推导式、枚举函数、返回多个值的方法、比较多个数字、字符串转列表、For-Else、N个最大/小元素、字典操作、数字格式化等,覆盖了从基础到高级的多个方面。
摘要由CSDN通过智能技术生成

写在前面

Python简单易学,现今非常流行。Python被用于各种场景,如数据科学、机器学习、web开发、脚本编制、自动化等等。

Python的简单易学性在数据科学非常重要。尽管一些数据科学家有计算机科学背景或了解其他编程语言,但仍有许多数据科学家来自各类专业,如统计学、数学或其他技术学科,当他们刚进入这个行业时,可能并没有那么多编程知识。Python语法易于理解和编写的优势,使它成为一种流行于快速且易于学习的编程语言。

本文将和大家一起学习 40 个可以帮助你加快数据处理效率的的方法和技巧,希望对你有所帮助。

   目录


01 列表推导式
02 枚举函数
03 通过函数返回多个值
04 像在数学中一样比较多个数字
05 将字符串转换为字符串列表
06 For-Else 方法
07 从列表中找到n个最大/小的元素
08 函数参数以列表值传递
09 重复整个字符串
10 从列表中找到元素的索引
11 在同一行中打印多个元素
12 分隔大数字以易于阅读
13 反转列表的切片
14 "is" 和 "==" 的区别
15 在一行代码中合并 2 个字典
16 识别字符串是否以特定字母开头
17 获取字符的Unicode
18 获取字典的键值对
19 在数学运算中使用布尔值
20 在列表的特定位置添加值
21 过滤器filter()函数
22 创建没有参数边界的函数
23 一次迭代两个或多个列表
24 改变句子中字母的大小写
25 检查对象使用的内存大小
26 Map() 函数
27 反转整个字符串
28 代码块的执行时间
29 删除字符串的左侧或右侧字符
30 在元组或列表中查找元素的索引
31 清空列表或集合中元素
32 连接两个集合
33 根据频率对列表的值排序
34 从列表中删除重复值
35 列表中元素连接为句子
36 一次从函数返回多个值
37 找出两个列表之间的差异
38 将两个列表合并为一个字典
39 执行字符串表示的代码
40 字符串格式化

01 列表推导式

列表的元素可以在一行中循环遍历。

numbers = [1, 2, 3, 4, 5, 6, 7, 8]
even_numbers = [number for number in numbers if number % 2 == 1]
print(even_numbers)

输出

[1,3,5,7]

 同样可以使用字典、集合和生成器来完成推导式。

dictionary = {'first_num': 1, 'second_num': 2,               'third_num': 3, 'fourth_num': 4} oddvalues = {key: value for (key, value) in dictionary.items() if value % 2 != 0} print(oddvalues)Output: {'first_num': 1,                           'third_num': 3}

02 枚举函数

Enumerate (枚举) 是一个很有用的函数,用于迭代对象,如列表、字典或文件。该函数生成一个元组,其中包括通过对象迭代获得的值以及循环计数器(从 0 的起始位置)。当希望根据索引编写代码时,循环计数器就派上用场了。

 来看一个示例,其中第一个和最后一个元素会被区别对待。

sentence = 'Just do It'
length = len(sentence)
for index, element in enumerate(sentence):
    print('{}: {}'.format(index, element))
    if index == 0:
        print('The first element!')
    elif index == length - 1:
        print('The last element!')

 输出

0: J
The first element!
1: u
2: s
3: t
4:
5: d
6: o
7:
8: I
9: t
The last element!

 也可以使用 enumerate 函数枚举文件。在下面的示例中,在跳出循环之前打印 CSV 文件的前 10 行。并且可以在任何文件上使用该函数。

with open('heart.csv') as f:
    for i, line in enumerate(f):
        if i == 10:
            break
        print(line)

03 通过函数返回多个值

在设计函数时,我们经常希望返回多个值。在这里介绍两种典型的方法。

方法一

最简单的是返回一个元组。这种方法通常只在有两个或三个值要返回时使用。但当元组中有更多值时,很容易忘记项目的顺序。

下面的代码部分是一个示例函数,它根据学生的 ID 号将学生的名字和姓氏作为元组返回。

# 返回元组
def get_student(id_num):
    if id_num == 0:
        return '君', '云朵'
    elif id_num == 1:
        return '猴子', '小'
    else:
        raise Exception('没有学生的id是: {}'.format(id_num))

 当我们使用数字 0 调用函数时,我们注意到它返回一个具有两个值的元组:'Taha' 和 'Nate' 。

Student = get_student(0)
print('名字: {}, 姓氏: {}'.format(Student[0], 
       Student[1]))

输出

名字:君,姓氏:云朵

方法二

第二个选择是返回字典。因为字典是键值对,我们可以对返回的值进行命名,这比元组更直观。

方法二的实现方式和方法一一样,只是返回一个字典。 

# 返回字典
def get_data(id_num):
    if id_num == 0:
        return {'first_name': '君', 
                'last_name': '云朵', 
                'title': '数据STUDIO', 
                'department': 'A', 
                'date_joined': '20201001'}
    elif id_num == 1:
        return {'first_name': '猴子', 
                'last_name': '小', 
                'title': '机器学习研习院',
                'department': 'B', 
                'date_joined': '20201019'}
    else:
        raise Exception('没有员工的id是: {}'.format(id_num))

 当结果是字典时,通过键引用特定值会更容易。我们正在调用 id_num = 0 的函数。

employee = get_data(0)
print('firs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值