Python簡單易學,現(xiàn)今非常流行。Python被用于各種場景,如數(shù)據(jù)科學、機器學習、web開發(fā)、腳本編制、自動化等等。
Python的簡單易學性在數(shù)據(jù)科學非常重要。盡管一些數(shù)據(jù)科學家有計算機科學背景或了解其他編程語言,但仍有許多數(shù)據(jù)科學家來自各類專業(yè),如統(tǒng)計學、數(shù)學或其他技術學科,當他們剛進入這個行業(yè)時,可能并沒有那么多編程知識。Python語法易于理解和編寫的優(yōu)勢,使它成為一種流行于快速且易于學習的編程語言。
在本文中,云朵君將和大家一起學習40個可以幫助你加快數(shù)據(jù)處理效率的的方法和技巧,希望對你有所幫助。
01列表推導式
列表的元素可以在一行中循環(huán)遍歷。
numbers=[1,2,3,4,5,6,7,8]
even_numbers=[numberfornumberinnumbersifnumber%2==0]
print(even_numbers)
輸出
[1,3,5,7]
同樣可以使用字典、集合和生成器來完成推導式。
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(枚舉)是一個很有用的函數(shù),用于迭代對象,如列表、字典或文件。該函數(shù)生成一個元組,其中包括通過對象迭代獲得的值以及循環(huán)計數(shù)器(從0的起始位置)。當希望根據(jù)索引編寫代碼時,循環(huán)計數(shù)器就派上用場了。
來看一個示例,其中第一個和最后一個元素會被區(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ù)返回多個值
在設計函數(shù)時,我們經(jīng)常希望返回多個值。在這里介紹兩種典型的方法。
方法一
最簡單的是返回一個元組。這種方法通常只在有兩個或三個值要返回時使用。但當元組中有更多值時,很容易忘記項目的順序。
下面的代碼部分是一個示例函數(shù),它根據(jù)學生的ID號將學生的名字和姓氏作為元組返回。
#返回元組
defget_student(id_num):
ifid_num==0:
return'君','云朵'
elifid_num==1:
return'猴子','小'
else:
raiseException('沒有學生的id是:{}'.format(id_num))
當我們使用數(shù)字0調(diào)用函數(shù)時,我們注意到它返回一個具有兩個值的元組:'Taha'和'Nate'。
Student=get_student(0)
print('名字:{},姓氏:{}'.format(Student[0],
Student[1]))
輸出
名字:君,姓氏:云朵
方法二
第二個選擇是返回字典。因為字典是鍵值對,我們可以對返回的值進行命名,這比元組更直觀。
方法二的實現(xiàn)方式和方法一一樣,只是返回一個字典。
#返回字典
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':'機器學習研習院',
'department':'B',
'date_joined':'20201019'}
else:
raiseException('沒有員工的id是:{}'.format(id_num))
當結(jié)果是字典時,通過鍵引用特定值會更容易。我們正在調(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ù)學中一樣比較多個數(shù)字
如果有一個值并希望將其與其他兩個值進行比較,可以使用以下基本數(shù)學表達式:1
這就是我們在小學學到的代數(shù)表達式。同樣的語句也可以在Python中使用。你應該用過如下的比較方式:
1<30
在Python中實現(xiàn)上述比較方式的另一種比較方法是:1
x=5
print(1
輸出
True
05將字符串轉(zhuǎn)換為字符串列表
假設將函數(shù)的輸入作為字符串,但它應該是這樣的列表:
輸入=[[1,2,3],[4,5,6]]
其實無需處理復雜的正則表達式,只需導入模塊'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方法
此方法用于在列表上應用循環(huán)。通常,當你想遍歷你應用的列表時,可以使用for循環(huán)。但是在這種方法中,你可以在循環(huán)中傳遞一個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í)行,因為我們傳遞了一個break語句。如果break語句從不執(zhí)行,則else塊將執(zhí)行。
07從列表中找到N個最大/小的元素
通過使用'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重復整個字符串
只需將字符串乘以一個數(shù)字,即希望字符串重復的次數(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相關知識,請關注IT培訓機構(gòu):千鋒教育。http://m.2667701.com/