Python簡單易學(xué),現(xiàn)今非常流行。Python被用于各種場景,如數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、web開發(fā)、腳本編制、自動化等等。
Python的簡單易學(xué)性在數(shù)據(jù)科學(xué)非常重要。盡管一些數(shù)據(jù)科學(xué)家有計(jì)算機(jī)科學(xué)背景或了解其他編程語言,但仍有許多數(shù)據(jù)科學(xué)家來自各類專業(yè),如統(tǒng)計(jì)學(xué)、數(shù)學(xué)或其他技術(shù)學(xué)科,當(dāng)他們剛進(jìn)入這個(gè)行業(yè)時(shí),可能并沒有那么多編程知識。Python語法易于理解和編寫的優(yōu)勢,使它成為一種流行于快速且易于學(xué)習(xí)的編程語言。
在本文中,云朵君將和大家一起學(xué)習(xí)40個(gè)可以幫助你加快數(shù)據(jù)處理效率的的方法和技巧,希望對你有所幫助。
01列表推導(dǎo)式
列表的元素可以在一行中循環(huán)遍歷。
numbers=[1,2,3,4,5,6,7,8]
even_numbers=[numberfornumberinnumbersifnumber%2==0]
print(even_numbers)
輸出
[1,3,5,7]
同樣可以使用字典、集合和生成器來完成推導(dǎo)式。
dictionary={'first_num':1,'second_num':2,
'third_num':3,'fourth_num':4}
oddvalues={key:valuefor(key,value)indictionary.items()ifvalue%2!=0}
print(oddvalues)Output:{'first_num':1,
'third_num':3}
02枚舉函數(shù)
Enumerate(枚舉)是一個(gè)很有用的函數(shù),用于迭代對象,如列表、字典或文件。該函數(shù)生成一個(gè)元組,其中包括通過對象迭代獲得的值以及循環(huán)計(jì)數(shù)器(從0的起始位置)。當(dāng)希望根據(jù)索引編寫代碼時(shí),循環(huán)計(jì)數(shù)器就派上用場了。
來看一個(gè)示例,其中第一個(gè)和最后一個(gè)元素會被區(qū)別對待。
sentence='JustdoIt'
lenlength=len(sentence)
forindex,elementinenumerate(sentence):
print('{}:{}'.format(index,element))
ifindex==0:
print('Thefirstelement!')
elifindex==length-1:
print('Thelastelement!')
輸出
0:J
Thefirstelement!
1:u
2:s
3:t
4:
5:d
6:o
7:
8:I
9:t
Thelastelement!
也可以使用enumerate函數(shù)枚舉文件。在下面的示例中,在跳出循環(huán)之前打印CSV文件的前10行。并且可以在任何文件上使用該函數(shù)。
withopen('heart.csv')asf:
fori,lineinenumerate(f):
ifi==10:
break
print(line)
03通過函數(shù)返回多個(gè)值
在設(shè)計(jì)函數(shù)時(shí),我們經(jīng)常希望返回多個(gè)值。在這里介紹兩種典型的方法。
方法一
最簡單的是返回一個(gè)元組。這種方法通常只在有兩個(gè)或三個(gè)值要返回時(shí)使用。但當(dāng)元組中有更多值時(shí),很容易忘記項(xiàng)目的順序。
下面的代碼部分是一個(gè)示例函數(shù),它根據(jù)學(xué)生的ID號將學(xué)生的名字和姓氏作為元組返回。
#返回元組
defget_student(id_num):
ifid_num==0:
return'君','云朵'
elifid_num==1:
return'猴子','小'
else:
raiseException('沒有學(xué)生的id是:{}'.format(id_num))
當(dāng)我們使用數(shù)字0調(diào)用函數(shù)時(shí),我們注意到它返回一個(gè)具有兩個(gè)值的元組:'Taha'和'Nate'。
Student=get_student(0)
print('名字:{},姓氏:{}'.format(Student[0],
Student[1]))
輸出
名字:君,姓氏:云朵
方法二
第二個(gè)選擇是返回字典。因?yàn)樽值涫擎I值對,我們可以對返回的值進(jìn)行命名,這比元組更直觀。
方法二的實(shí)現(xiàn)方式和方法一一樣,只是返回一個(gè)字典。
#返回字典
defget_data(id_num):
ifid_num==0:
return{'first_name':'君',
'last_name':'云朵',
'title':'數(shù)據(jù)STUDIO',
'department':'A',
'date_joined':'20201001'}
elifid_num==1:
return{'first_name':'猴子',
'last_name':'小',
'title':'機(jī)器學(xué)習(xí)研習(xí)院',
'department':'B',
'date_joined':'20201019'}
else:
raiseException('沒有員工的id是:{}'.format(id_num))
當(dāng)結(jié)果是字典時(shí),通過鍵引用特定值會更容易。我們正在調(diào)用id_num=0的函數(shù)。
employee=get_data(0)
print('first_name:{},nlast_name:{},ntitle:{},ndepartment:{},ndate_joined:{}'.format(
employee['first_name'],employee['last_name'],
employee['title'],employee['department'],
employee['date_joined']))
輸出
first_name:君,
last_name:云朵,
title:數(shù)據(jù)STUDIO,
department:A,
date_joined:20201001
04像在數(shù)學(xué)中一樣比較多個(gè)數(shù)字
如果有一個(gè)值并希望將其與其他兩個(gè)值進(jìn)行比較,可以使用以下基本數(shù)學(xué)表達(dá)式:1
這就是我們在小學(xué)學(xué)到的代數(shù)表達(dá)式。同樣的語句也可以在Python中使用。你應(yīng)該用過如下的比較方式:
1<30
在Python中實(shí)現(xiàn)上述比較方式的另一種比較方法是:1
x=5
print(1
輸出
True
05將字符串轉(zhuǎn)換為字符串列表
假設(shè)將函數(shù)的輸入作為字符串,但它應(yīng)該是這樣的列表:
輸入=[[1,2,3],[4,5,6]]
其實(shí)無需處理復(fù)雜的正則表達(dá)式,只需導(dǎo)入模塊'ast'并調(diào)用其函數(shù)literal_eval:
importast
defstring_to_list(string):
returnast.literal_eval(string)
string="[[1,2,3],[4,5,6]]"
my_list=string_to_list(string)
print(my_list)
輸出
[[1,2,3],[4,5,6]]
06For-Else方法
此方法用于在列表上應(yīng)用循環(huán)。通常,當(dāng)你想遍歷你應(yīng)用的列表時(shí),可以使用for循環(huán)。但是在這種方法中,你可以在循環(huán)中傳遞一個(gè)else條件,這種情況極為罕見。其他編程語言不支持這種方法。
看看它在一般情況下是如何工作的:如果要檢查列表中是否有偶數(shù)。
number_List=[1,3,7,9,8]
fornumberinnumber_List:
ifnumber%2==0:
print(number)
break
else:
print("Noevennumbers!!")
輸出
8
如果找到偶數(shù),則將打印該數(shù)字,并且else部分將不會執(zhí)行,因?yàn)槲覀儌鬟f了一個(gè)break語句。如果break語句從不執(zhí)行,則else塊將執(zhí)行。
07從列表中找到N個(gè)最大/小的元素
通過使用'heapq'模塊,你可以從列表中找到n-largest或n-smallest元素。
importheapq
numbers=[80,25,68,77,95,88,30,55,40,50]
print(heapq.nlargest(5,numbers))
print(heapq.nsmallest(5,numbers))
輸出
[95,88,80,77,68][25,30,40,50,55]
08函數(shù)參數(shù)以列表值傳遞
可以使用'*'訪問列表的所有元素。
defSummation(*arg):
sum=0
foriinarg:
sum+=i
returnsum
result=Summation(*[8,5,10,7])
print(result)
輸出
30
09重復(fù)整個(gè)字符串
只需將字符串乘以一個(gè)數(shù)字,即希望字符串重復(fù)的次數(shù)。
value="數(shù)據(jù)STUDIO"
print(value*3)
print("-"*31)
輸出
數(shù)據(jù)STUDIO數(shù)據(jù)STUDIO數(shù)據(jù)STUDIO
----------------------------
10從列表中找到元素的索引
使用".index"從列表中查找元素的索引。
cities=['Vienna','Amsterdam','Paris','Berlin']
print(cities.index('Berlin'))
以上內(nèi)容為大家介紹了好用到起飛的Python技巧!,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.em-kal.com/