不能錯過!你必須知道的3種重要Python技能

2020-12-15 讀芯術

全文共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學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 3種方法學會python模塊使用,3分鐘直接上手一個python繪圖程序
    013種方式查看python模塊使用,使用turtle模塊完成第一個繪畫程序程式語言是一種工具,工具就是為了解決問題,我們的學習模式號,就出現該模塊下所有的函數,也就是這個模塊下所有隱藏的技能2、第二種方式,在python shell控制臺上查看我們先 import turtle 導入模塊,然後,使用 dir(turtle) ,就顯示所有turtle下面具有的技能:
  • 9種你不知道的Python 3功能
    但是,我覺得您必須了解Python 3支持類型提示。最低要求Python版本:3.65.內置LRU緩存如果最新的呼叫是傳入呼叫的最佳預測器,則LRU(最近最少使用)的緩存性能會很好。(例如,最常見的新聞伺服器帖子每天都會變化)。緩存的大小限制意味著,如果沒有像Web伺服器這樣的長時間運行的循環,緩存就不會擴展。定義用戶功能時,它必須是可調用的。
  • 不能錯過的Python漫畫
    漫畫內容取自: http://kaltap.com/2015/11/28/9-python-cartoons/
  • 千鋒Python培訓老師講解學習 Python前必須要知道的事
    對此,千鋒Python培訓老師特別想對小白學員談一些在學習Python前的準備工作,這幾項必須知道的小事甚至決定了學習Python的效果和未來的職業走向。其次,對於在校學生來說,Python已經被列為高中計算機學習課程,對於現在的在校大學生來說,空閒時間多,學習python程式語言在彌補相關技能的同時,還能掌握一種新技能,對以後的工作更有幫助。再次,對於轉行求職者來說,Python人才缺口達80萬,就業工資高,針對人工智慧、數據分析、網絡爬蟲、遊戲開發、網站開發等需求都能用python搞定,此時不轉行更待何時?
  • 學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫
    在網絡上看到幾位前輩寫了關於python深度學習庫的文章,對於小小白來說,因為我剛開始學python,我得承認自己看完後依然覺得雲裡霧裡的,不知道這些庫到底對我有什麼用處。所以我到網絡上搜集補充關於這些庫的說明內容,感覺在這個整理資料的過程中,對於這些python程序庫了解了更多,以下是我整理的學習筆記。
  • 學python?不是一個python入門教程就行,學之前你必須知道這些
    第一 學習方向:python應用方向很多,必須明確學習方向想全棧開發:就是web應用開發,是用來寫網站後臺的數據分析:既然是就業那麼就要看市場,就是人才需求市場,這裡說的市場當讓是說python人才需求的市場了。說到市場當然python每個方向肯定有市場了,咱們直接看主要矛盾:一個是需求量,另一個是入行的難易程度。python全棧目前是市場的需求量最大,入行也是最容易的。要是為了就業那就先這樣入門入行,就不用想了。
  • 【技能提升計劃】這個夏天,你不能錯過的免費在線課程
    更是提升技能的季節...畢竟,等你暑假嗨皮完九月一回校馬上就是招聘季,如果趁著暑假順利提升經驗值,到時手握技能滿點簡歷的你也多了幾分自信!小紐建議你,不妨趁著夏日好時光,通過每周幾小時的在線學習短期內順利掌握具有求職競爭力的技能(在線學習=抱著電腦/iPad/手機舒服地邊吃邊喝地學)。
  • 學好Python,必須熟練掌握的幾種數據結構【文末送書】
    當下,Python語言非常火熱,學好Python就必須掌握好這些數據結構的常用用法。python提供了多種數據結構可供選擇,除了全局的列表、字典、集合和元組4個基本類型外,collections模塊提供了一些定製化的數據結構集合類數據結構,array和heapq模塊則分別提供了數組和堆數據結構,本文就這4種類型加以分別介紹。
  • 這本Python入門暢銷書《「笨辦法」學python 3》,不僅僅是一本書
    剛開始這對你來說會非常難,但你需要堅持下去。如果你通讀本書,每晚花一兩個小時做做習題,你可以為自己讀下一本編程書打下良好的基礎。這篇文章可能無法讓你一夜之間成為一名程式設計師,但它將會讓你踏上學習編程方法的道路。本書將教會你編程新手需要了解的3種重要的技能:讀和寫、注重細節以及發現不同。
  • 零基礎,從一個搶票程序,提升自己的Python技能
    軟體的作用是自動化,提升效率,說白了就是代替人去操作,可以 24 小時幫你盯著,能提高買票成功率,不保證一定能買到,更不是什麼黑客科技,正好快過年了,買不到票的同學,可以用這個給自己買個回家的車票。本文的重點不是買票,而是零基礎的人如何從開源項目,提升 Python 技能。
  • 必須掌握的四種python數據結構,五分鐘快速掌握
    >insert表示在指定索引前插入對象,這裡注意python裡面所有的類型本質都是對象,這個我們後面講類的時候再講。我們使用 dir(tuple)來看看元組具有的技能我們先不關注帶雙下劃線的,我們看到只有count和index兩個函數,肯定沒有過刪除和修改的技能了3、set集合,使用{}創建集合中的元素是無序且唯一的
  • 運營人,這7種推廣技能你必須知道
    對於運營人員來說,不論你是做用戶運營還是社區運營都會向用戶或其他人進行推廣,當你在進行活動的時候你需要聯繫渠道或產品內部來推廣產品,因此推廣技能作為運營技能的重要技能自然是有它重要的地方。媒體廣告重要的地方在於其強大的流量以及多元化的投放方式,對於同時媒體或信息類的產品會有直接的幫助。如圖3 所示。
  • Python 初學者進階的九大技能
    如果想要文件名中的文件擴展名,很容易假設你需要的是最後3個字母。你也可以使用標準庫 `os.path.splitext `,點擊這裡查看:os.path.splitext:https://www.geeksforgeeks.org/python-os-path-splitext-method/。3.
  • 5種方法,加密你的Python代碼
    Python越來越熱門了,2019年3月TIOBE程式語言排行榜上,Python更是罕見的擊敗了「霸榜三巨頭」之一的C++,擠進前三。Python優點很多,比如簡單易學,代碼量少,能做的事很多等等,和其他語言一樣,Pyhton也有一些不可掩蓋的缺點,版本不兼容,運行效率不高等等。
  • 基於python的基因組組裝課程
    可能基本上沒有多少《生信技能樹》的粉絲知道,其實我的生物信息學技能也是從基因組組裝開始的,大概是八九年前我本科還沒有畢業就去北京實習,在西四環的青塔那邊的水產所跟著大黃魚等基因組團隊做一些打雜工作
  • Python小知識 | 這些技能你不會?(二)
    ——老表《老表說》✪ Python小知識 ✪最近在看《零壓力學Python》,鞏固一下基礎知識,意外收穫到很多常用卻不一定被注意的小知識,分享給大家,學到東西了點讚支持哦~第一篇:點擊這裡查看第一篇python小技能一、推導式
  • 這些你必須知道
    那麼,數據分析師到底需要擁有哪些技能?轉行數據分析應該知道哪些?如何快速成為數據分析師?這是想要轉行數據分析人的共同疑問。本文針對想要轉行數據分析的朋友,做出一些轉行前應該了解的內容,讓你從一開始就走上一條平滑,輕鬆的數據分析之路。
  • 學習Python無從下手?最好的免費資源想要拿走
    https://github.com/3. Awesome Python 最全的python資源,沒有之一,絕對不容錯過的python資源大全。https://github.com/vinta/awesome-python4.
  • 瞬息萬變的未來,你必須要掌握的5種技能
    不可否認,我們現在所知道的工作世界與我們在新冠疫情蔓延之前所知道的世界是不同的。今天,包括法律、金融、生物技術、信息技術、納米技術、能源、醫療保健、教育等在內的任何領域都向革命性的轉型發展敞開大門。人們在未來的工作中獲得成功所需要的技能正在發生重大轉變。
  • Python3 CookBook中文版
    項目主頁https://github.com/yidao620c/python3-cookbook