溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

發(fā)布時(shí)間:2021-11-22 16:48:47 來(lái)源:億速云 閱讀:115 作者:iii 欄目:編程語(yǔ)言

這篇文章主要介紹“學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)”,在日常操作中,相信很多人在學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

01、只要一行代碼的列表生成器

假如每次你想要生成個(gè)列表,都要寫(xiě)個(gè)循環(huán),是不是很煩呢?好在 Python 已經(jīng)有一個(gè)內(nèi)建方法,只要一行代碼就能搞定這個(gè)問(wèn)題。如果你不熟悉這個(gè)語(yǔ)法,可能理解起來(lái)會(huì)有點(diǎn)難度,不過(guò)一旦你習(xí)慣這個(gè)技術(shù)之后,你一定會(huì)愛(ài)不釋手的!

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

動(dòng)圖:如何將一個(gè)循環(huán)改成列表生成式(來(lái)源:Trey Hunner )

上面這個(gè)動(dòng)圖就是一個(gè)很好的例子,原來(lái)的代碼就是采用 for 循環(huán)生成列表的方法,而圖上一步一步將它改造成了一個(gè)只有一行代碼的列表生成式,再也不用循環(huán)啦。是不是很簡(jiǎn)潔?

下面是另外一個(gè)對(duì)比范例:

使用循環(huán):

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

輸出的結(jié)果是 [1, 4, 9, 16]

使用生成式:

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

輸出的結(jié)果也是 [1, 4, 9, 16]

02、Lambda 表達(dá)式

明明這個(gè)函數(shù)用不了幾次,每次都要寫(xiě)一大串函數(shù)構(gòu)建代碼,是不是很累?別怕,Lambda 表達(dá)式來(lái)救你!Lambda 表達(dá)式能方便地創(chuàng)造簡(jiǎn)單、一次使用而且匿名的函數(shù)對(duì)象。基本上,它們讓你無(wú)需費(fèi)心構(gòu)造一個(gè)函數(shù),而是直接使用這個(gè)函數(shù)。

Lambda 表達(dá)式的基本語(yǔ)法是:

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

歐剃漢化,

要記住,Lambda 表達(dá)式創(chuàng)造的函數(shù)和普通的 def 構(gòu)建的函數(shù)沒(méi)什么不同,只不過(guò)函數(shù)體只有單獨(dú)一個(gè)表達(dá)式而已??纯聪旅孢@個(gè)例子:

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

輸出的結(jié)果是 10

03、Map 和 Filter 函數(shù)

一旦你掌握了 Lambda 表達(dá)式,將它們與 map 或 filter 函數(shù)一起使用,可謂是威力無(wú)比。

具體來(lái)說(shuō), map() 函數(shù)接收一個(gè)列表,和一個(gè)函數(shù),它對(duì)列表里的每個(gè)元素調(diào)用一個(gè)函數(shù)進(jìn)行處理,再將結(jié)果放進(jìn)一個(gè)新列表里。下面這個(gè)例子中,map() 函數(shù)遍歷 seq 中的每個(gè)元素,把它乘2,再把結(jié)果放入一個(gè)新列表,***返回這個(gè)列表。最外面一層 list() 函數(shù)是把 map() 返回的對(duì)象轉(zhuǎn)換成列表格式。

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

輸出的結(jié)果是 [2, 4, 6, 8, 10]

而 filter() 函數(shù)略有不同,它接收一個(gè)列表,和一個(gè)規(guī)則函數(shù),在對(duì)列表里的每個(gè)元素調(diào)用這個(gè)規(guī)則函數(shù)之后,它把所有返回值為假的元素從列表中剔除,然后返回這個(gè)過(guò)濾后的子列表。

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

輸出的結(jié)果是 [3, 4, 5]

04、Arange 和 Linspace 函數(shù)

為了快速方便地生成 numpy 的數(shù)組,你一定得熟悉 arange() 和 linspace() 這兩個(gè)函數(shù)。這兩個(gè)函數(shù)分別有自己的特定用法,不過(guò)對(duì)我們來(lái)說(shuō),它們都能很好地生成 numpy 數(shù)組(而不是用 range() ),這在數(shù)據(jù)科學(xué)的分析工作上可是相當(dāng)好用的。

arange() 函數(shù)按照指定的步長(zhǎng)返回一個(gè)等差數(shù)列。除開(kāi)始和結(jié)束值之外,你還可以自定義步長(zhǎng)和數(shù)據(jù)類(lèi)型。請(qǐng)注意,給定的結(jié)束值參數(shù)是不會(huì)被包含在結(jié)果內(nèi)的。

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

輸出的是一個(gè)數(shù)組對(duì)象: array([3, 5])

linspace() 函數(shù)的用法也很類(lèi)似,不過(guò)有一點(diǎn)小小的不同。 linspace() 返回的是將給定區(qū)間進(jìn)行若干等分以后的等分點(diǎn)組成的數(shù)列。所以你傳入的參數(shù)包括開(kāi)始值、結(jié)束值,以及具體多少等分。linspace() 將這個(gè)區(qū)間進(jìn)行等分后,把開(kāi)始值、結(jié)束值和每個(gè)等分點(diǎn)都放進(jìn)一個(gè) NumPy 數(shù)組里。這在做數(shù)據(jù)可視化以及繪制坐標(biāo)軸的時(shí)候都很有用。

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

輸出的是一個(gè)數(shù)組對(duì)象: array([ 2.0, 2.25, 2.5, 2.75, 3.0])

05、Pandas 中坐標(biāo)軸(axis 參數(shù))的意義

在 Pandas 里要篩掉某一列,或是在 NumPy 矩陣?yán)镆獙?duì)數(shù)據(jù)求和的時(shí)候,你可能已經(jīng)遇到過(guò)這個(gè) axis 參數(shù)的問(wèn)題。如果你還沒(méi)見(jiàn)過(guò),那提前了解一下也無(wú)妨。比如,對(duì)某個(gè) Pandas 表這樣處理:

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

在我真正理解之前,我基本上每次要用到 drop 的時(shí)候,都得去重新查詢(xún)一下哪個(gè) axis 的值對(duì)應(yīng)的是哪個(gè),多到我自己都數(shù)不清了。正如上面這個(gè)示例,你大概已經(jīng)看出,如果要處理列,axis 要設(shè)成 1,如果處理行,axis 要設(shè)成 0,對(duì)吧。但這是為什么呢?我最喜歡的一個(gè)解釋?zhuān)ɑ蛘呤俏胰绾斡涀∵@一點(diǎn)的)是這樣的:

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

獲取 Pandas 數(shù)據(jù)表對(duì)象的 shape 屬性,你將獲得一個(gè)元組,元組的***個(gè)元素是數(shù)據(jù)表的行數(shù),第二個(gè)元素是數(shù)據(jù)表的列數(shù)。想想 Python 里這兩個(gè)元素的下標(biāo)吧,前面一個(gè)是 0,后面一個(gè)是 1,對(duì)不對(duì)?所以對(duì)于 axis 參數(shù),0 就是前面的行數(shù),1 就是后面的列數(shù),怎么樣,好記吧?

06、用 Concat、Merge 和 Join 來(lái)合并數(shù)據(jù)表

如果你熟悉 SQL,這幾個(gè)概念對(duì)你來(lái)說(shuō)就是小菜一碟。不過(guò)不管怎樣,這幾個(gè)函數(shù)從本質(zhì)上來(lái)說(shuō)不過(guò)就是合并多個(gè)數(shù)據(jù)表的不同方式而已。當(dāng)然,要時(shí)刻記著什么情況下該用哪個(gè)函數(shù)也不是一件容易的事,所以,讓我們一起再回顧一下吧。

concat() 可以把一個(gè)或多個(gè)數(shù)據(jù)表按行(或列)的方向簡(jiǎn)單堆疊起來(lái)(看你傳入的 axis 參數(shù)是 0 還是 1 咯)。

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

merge() 將會(huì)以用戶(hù)指定的某個(gè)名字相同的列為主鍵進(jìn)行對(duì)齊,把兩個(gè)或多個(gè)數(shù)據(jù)表融合到一起。

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

join()和 merge() 很相似,只不過(guò) join() 是按數(shù)據(jù)表的索引進(jìn)行對(duì)齊,而不是按某一個(gè)相同的列。當(dāng)某個(gè)表缺少某個(gè)索引的時(shí)候,對(duì)應(yīng)的值為空(NaN)。

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

有需要的話,你還可以查閱Pandas 官方文檔 ,了解更詳細(xì)的語(yǔ)法規(guī)則和應(yīng)用實(shí)例,熟悉一些你可能會(huì)碰到的特殊情況。

07、Apply 函數(shù)

你可以把 apply() 當(dāng)作是一個(gè) map() 函數(shù),只不過(guò)這個(gè)函數(shù)是專(zhuān)為 Pandas 的數(shù)據(jù)表和 series 對(duì)象打造的。對(duì)初學(xué)者來(lái)說(shuō),你可以把 series 對(duì)象想象成類(lèi)似 NumPy 里的數(shù)組對(duì)象。它是一個(gè)一維帶索引的數(shù)據(jù)表結(jié)構(gòu)。

apply() 函數(shù)作用是,將一個(gè)函數(shù)應(yīng)用到某個(gè)數(shù)據(jù)表中你指定的一行或一列中的每一個(gè)元素上。是不是很方便?特別是當(dāng)你需要對(duì)某一列的所有元素都進(jìn)行格式化或修改的時(shí)候,你就不用再一遍遍地循環(huán)啦!

這里就舉幾個(gè)簡(jiǎn)單的例子,讓大家熟悉一下基本的語(yǔ)法規(guī)則:

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

08、數(shù)據(jù)透視表(Pivot Tables)

***也最重要的是數(shù)據(jù)透視表。如果你對(duì)微軟的 Excel 有一定了解的話,你大概也用過(guò)(或聽(tīng)過(guò))Excel 里的“數(shù)據(jù)透視表”功能。Pandas 里內(nèi)建的 pivot_table() 函數(shù)的功能也差不多,它能幫你對(duì)一個(gè)數(shù)據(jù)表進(jìn)行格式化,并輸出一個(gè)像 Excel 工作表一樣的表格。實(shí)際使用中,透視表將根據(jù)一個(gè)或多個(gè)鍵對(duì)數(shù)據(jù)進(jìn)行分組統(tǒng)計(jì),將函數(shù)傳入?yún)?shù) aggfunc 中,數(shù)據(jù)將會(huì)按你指定的函數(shù)進(jìn)行統(tǒng)計(jì),并將結(jié)果分配到表格中。

下面是幾個(gè) pivot_table() 的應(yīng)用例子:

學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)

到此,關(guān)于“學(xué)習(xí)Python過(guò)程中該注重哪些細(xì)節(jié)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI