不能錯過!你必須知道的3種重要Python技能
全文共1928字,預計學習時長5分鐘
圖片來自fabio,Unsplash
學習
Pandas
是很棒的體驗,學習
Numpy
也很有趣。
但是,你是否過早地開始使用程式庫了呢?
這也許是因為你還沒有意識到pure python的魅力。
如果是這樣的話,那麼這篇文章會對你很有幫助。
本文將介紹幾個非常有趣的pure python功能,這些功能是在日常資料科學工作中十分常用的。
在整個資料準備階段都都可以大量地使用它們(大量用於資料清理),甚至在繪製之前也可以使用它們來聚合資料。
希望你也可以將這些技巧運用到專案中。
儘管沒有執行時的速度或效能優勢,但是與從零開始實施此邏輯相比,這將為你節省大量時間。
因此,言歸正傳,讓我們來看第一點吧!
By GIPHY
1、拉姆達函式(Lambda Functions)
拉姆達函式非常強大。
當然,當必須以相同的方式清理多個列時,我們不會使用它,但這並不是經常遇到的情況。
通常情況下,每個屬性在清理後都需要自己的邏輯。
Lambda函式允許建立“匿名”函式。
這基本上意味著可以快速生成特定函式,而無需使用pythonsdef來正確定義函式。
儘管如此,請記住Lambda函式主要被設計成one-liners,因此它應該用於簡單的東西。
對於更復雜的邏輯,則需要使用常規函式。
裡將展示兩個具體示例,通過這些示例,我們無需為所有專案定義函式,從而可以節省許少時間。
雖然第一個示例可能不會在現實中常用,但值得一提。
這就是對數字求平方。
#regular function
def square_number(x):
res = x ** 2
return res# lambda function
square = lambda x: x ** 2# results
print('square_number(4): {}'.format(square_number(4)))
print('square lambda: {}'.format(square(4)))>>> square_number(4):16
>>> square lambda: 16
上面的程式碼片段以常規方式和lambda函式的方式完成了相同邏輯的實現。
雖然結果是一樣的,但是lambda的單行看起來舒服多了!
第二個例子是關於檢查數字是偶數或非偶數:
#regular function
def is_even(x):
if x % 2 == 0:
return True
else:
return False
# lambda function
even = lambda x: x % 2 == 0# results
print('is_even(4): {}'.format(is_even(4)))
print('is_even(3): {}'.format(is_even(3)))
print('even(4): {}'.format(even(4)))
print('even(3): {}'.format(even(3)))>>> is_even(4): True
>>> is_even(3): False
>>> even(4): True
>>> even(3): False
再一次,同樣的邏輯以兩種方式實現。
你來決定你喜歡哪一個吧。
2、列表解析(List Comprehensions)
簡單來說,列表解析使我們可以使用其他符號建立列表。
可以將其視為括號內的單行迴圈。
在做特徵工程時,使用列表解析很方便。
例如,假設我們在通過分析電子郵件標題來進行垃圾郵件檢測,那麼我們會想弄明白是否問號會在垃圾郵件中經常出現。
如果用列表解析來實現的話,這將是一項非常簡單的任務。
就不再進行更多的理論解釋了。
例子才是最重要的。
這裡的例子選擇宣告一個常規函式,該函式將檢查列表中以某個字元(在這種情況下為“ a”)開頭的專案。
實施後,再用列表解析執行相同的操作。
猜猜哪個會寫起來更快呢?
lst =['Acer', 'Asus', 'Lenovo', 'HP']# regular function
def starts_with_a(lst):
valids = []
for word in lst:
if word[0].lower() == 'a':
valids.append(word)
return valids
# list comprehension
lst_comp = [word for word in lst if word[0].lower() == 'a']# results
print('starts_with_a: {}'.format(starts_with_a(lst)))
print('list_comprehension: {}'.format(lst_comp))>>> starts_with_a:['Acer', 'Asus']
>>> list_comprehension: ['Acer', 'Asus']
如果是第一次看到這樣的方式,語法可能會有點混亂。
但是當你每天都在寫這樣的函式時,它們會越來越吸引你,看你能把多少複雜的東西應用進去。
3、Zip函式
這是在實踐中很少看到的內建python方法之一。
從資料科學家的角度來看,它使我們能夠同時迭代兩個或多個列表。
在處理日期和時間時,這可以派上用場。
例如,有一個屬性表示某個事件的開始時間,而第二個屬性表示該事件的結束時間時,為了進一步分析,幾乎總是需要計算它們之間的時間差。
而到目前為止,zip函式是最簡單的方法。
例如,來比較一些虛構公司和虛構地區的一週銷售日期:
sales_north= [350, 287, 550, 891, 241, 653, 882]
sales_south = [551, 254, 901, 776, 105, 502, 976]for s1, s2 in zip(sales_north,sales_south):
print(s1 — s2)>>> -201
33
-351
115
136
151
-94
看看這有多麼簡單吧。
可以應用相同的邏輯同時迭代3個陣列,只需要在括號中新增“ s3”和其他一些列表名稱即可。
結語
Pure Python真的非常強大。
瞭解其功能後,就不再需要專門的庫來存放所有內容了。
這將幫助你成為一名更好的程式設計師。
練習這些技能、掌握它們,並將其應用到日常工作中。
無論是僅僅為了娛樂、完成學業還是工作,你都不會後悔的。
你的看法是什麼?
你是否認為Pure Python中的其他內容也對於資料科學家至關重要?
說說你的觀點吧!
推薦閱讀專題
留言 點贊 發個朋友圈
我們一起分享AI學習與發展的乾貨
編譯組:沈田、殷睿宣
相關連結:
https://towardsdatascience.com/3-essential-python-skills-for-data-scientists-b642a1397ae3
如需轉載,請後臺留言,遵守轉載規範
推薦文章閱讀
相關文章
- 函式你必須知道的三種角色?函式
- 3款你必須知道的爬蟲工具爬蟲
- 你必須知道的 SmartSql !SQL
- 這幾個python常用的庫你必須知道!Python
- 當.Net撞上BI視覺化,這3種“套路”你必須知道視覺化
- Python 這10個字典操作你必須知道Python
- 前端必須知道的除錯工具前端除錯
- 你必須擁有的Python除錯神器Python除錯
- 【推薦】Python中你必須要知道的IDE工具!PythonIDE
- ?你必須知道的Java泛型Java泛型
- Python常用的開源框架,這三個你必須知道!Python框架
- 你必須知道的python運維常用指令碼!(日常更新)Python運維指令碼
- 你必須要知道的babel二三事Babel
- 你必須知道的HTTP基本概念HTTP
- 你必須做到的 3 件事
- using 你知道多少?你必須知道的.NET讀書筆記筆記
- .Net Core 你必須知道的source-generators
- C#.NET 中你必須知道的反射C#反射
- 敲黑板:InnoDB的Double Write,你必須知道
- 你必須知道的Java基礎知識Java
- is 和 as 讀你必須知道的.net 筆記筆記
- 你必須要知道的HTTP協議原理HTTP協議
- 職場科普,Python這6個字典操作你必須知道!Python
- Python有哪幾種編碼方式?這幾類必須知道!Python
- 前端設計師必須知道的10個重要的CSS技巧前端CSS
- 學習Python必須具備的五大技能!Python
- 想要學習Python課程,這些問題你必須知道!Python
- LLM部署,你必須要知道的幾個技巧!
- 關於Http協議,你必須要知道的HTTP協議
- 學習python必須要知道的三種安裝擴充套件庫的方法Python套件
- 3分鐘看懂Python後端必須知道的Django的訊號機制!Python後端Django
- 不知道CC防護的看這裡,這種方式你必須學會!
- 這10款好用的Windows軟體,你必須知道!Windows
- 入門node.js你必須知道的那些事Node.js
- 演算法工程師必須要知道的面試技能雷達圖演算法工程師面試
- PHP程式設計師必須知道的兩種日誌PHP程式設計師
- 初學Python必須知道的11個知識點!Python
- Python入門必須知道的11個知識點Python