成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

開發(fā) 后端 大數(shù)據(jù)
學(xué)習(xí)數(shù)據(jù)科學(xué)的過程,從來就不是一帆風(fēng)順的。在寫代碼的時候,你是否也經(jīng)常不得不反復(fù)搜索同一個問題,同一個概念,甚至同一個語法結(jié)構(gòu)的特性呢?對,你不是一個人在戰(zhàn)斗。

每個人都會遇到這個問題。

學(xué)習(xí)數(shù)據(jù)科學(xué)的過程,從來就不是一帆風(fēng)順的。在寫代碼的時候,你是否也經(jīng)常不得不反復(fù)搜索同一個問題,同一個概念,甚至同一個語法結(jié)構(gòu)的特性呢?對,你不是一個人在戰(zhàn)斗。

我也一直在同樣的情況里掙扎著。

雖然遇到問題上 StackOverflow 搜一搜是相當(dāng)正常的,但比起切實(shí)掌握理解語言特性的情況,不斷重復(fù)的遇到問題+搜來搜去,會嚴(yán)重拖慢你的速度。

如今,無窮無盡的免費(fèi)資源時時刻刻充斥著互聯(lián)網(wǎng),一搜即得。然而,對初學(xué)者,這既是一種祝福,也是一個詛咒。如果不經(jīng)過有效管理,過度依賴網(wǎng)絡(luò)資源會讓你養(yǎng)成糟糕的習(xí)慣,從長遠(yuǎn)上影響了你的成長。

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

拿我自己來說,我常常從許多內(nèi)容差不多的帖子里復(fù)制代碼下來使用,而不愿意花時間和精力去學(xué)習(xí)鞏固其中所需的技術(shù)概念,以便下次能自己寫出需要的代碼。

這是個懶辦法,雖然短期內(nèi)看起來它能簡單快速地搞定問題,但從長遠(yuǎn)上看,這個做法會嚴(yán)重影響你的成長,破壞你的創(chuàng)造性,并從根本上動搖你回想某些語法特性的能力(這在技術(shù)面試的時候可是致命的)。

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

那我要怎么解決呢?

最近,我正在搞一個在線數(shù)據(jù)分析課程,名字叫《數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)中的 Python 》。在最初的幾個視頻教程剛發(fā)布的時候,有人提醒我,在用 Python 進(jìn)行數(shù)據(jù)分析的時候,我老是忽略了一些重要的概念和語法。

為了進(jìn)一步鞏固我自己對這些概念的理解,也為了幫大家節(jié)省一下每次上網(wǎng)搜索的時間,我在這里整理了一下自己使用 Python、NumPy 和 Pandas 時遇到的一些常見的小問題,希望對你有幫助。

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

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

動圖:如何將一個循環(huán)改成列表生成式(來源:Trey Hunner )

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

下面是另外一個對比范例:

使用循環(huán):

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

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

使用生成式:

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

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

02、Lambda 表達(dá)式

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

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

歐剃漢化,優(yōu)達(dá)學(xué)城出品

要記住,Lambda 表達(dá)式創(chuàng)造的函數(shù)和普通的 def 構(gòu)建的函數(shù)沒什么不同,只不過函數(shù)體只有單獨(dú)一個表達(dá)式而已。看看下面這個例子:

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

輸出的結(jié)果是 10

03、Map 和 Filter 函數(shù)

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

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

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

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

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

04、Arange 和 Linspace 函數(shù)

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

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

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

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

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

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

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

在我真正理解之前,我基本上每次要用到 drop 的時候,都得去重新查詢一下哪個 axis 的值對應(yīng)的是哪個,多到我自己都數(shù)不清了。正如上面這個示例,你大概已經(jīng)看出,如果要處理列,axis 要設(shè)成 1,如果處理行,axis 要設(shè)成 0,對吧。但這是為什么呢?我最喜歡的一個解釋(或者是我如何記住這一點(diǎn)的)是這樣的:

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

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

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

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

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

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

07、Apply 函數(shù)

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

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

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水 這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

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

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

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

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

這8個Python小細(xì)節(jié),讓你在大數(shù)據(jù)領(lǐng)域如魚得水

總結(jié)

以上就是我在自學(xué)過程中經(jīng)常遇到的幾個問題,及其理解方法。就我個人來說,把這些概念寫下來,并用盡可能簡單的語句描述它們,再分享給大家的整個過程,也讓我更加深入的理解和掌握這些技術(shù)。

***,我希望,或許以后你和數(shù)據(jù)科學(xué)中這些難以捉摸的方法、函數(shù)以及概念斗智斗勇的時候,今天看到的一些知識能派上點(diǎn)用場。

責(zé)任編輯:未麗燕 來源: 優(yōu)達(dá)學(xué)城Udacity
相關(guān)推薦

2018-09-18 16:53:07

編程語言Python大數(shù)據(jù)

2021-02-17 13:35:17

finalgetJava

2021-01-26 07:20:26

Final關(guān)鍵字類變量

2019-12-25 14:19:21

Python編程語言Java

2020-02-24 15:59:38

GitHub代碼開發(fā)者

2019-04-12 09:45:57

Web網(wǎng)絡(luò)線程性能

2020-04-20 17:43:28

Java代碼優(yōu)化開發(fā)

2020-08-19 09:22:14

Python語言工具

2020-12-31 10:33:05

Python開發(fā)編程

2021-12-27 14:33:47

Python語言開發(fā)

2018-05-02 13:59:01

大數(shù)據(jù)數(shù)據(jù)收集數(shù)據(jù)科學(xué)

2019-10-08 14:16:08

大數(shù)據(jù)數(shù)據(jù)產(chǎn)業(yè)

2020-12-11 11:33:15

大數(shù)據(jù)Hadoop

2020-03-05 09:42:43

JavaJava虛擬機(jī)數(shù)據(jù)庫

2020-09-28 15:11:42

大數(shù)據(jù)

2016-12-23 18:27:45

聯(lián)想

2017-11-29 13:31:19

大數(shù)據(jù)農(nóng)業(yè)農(nóng)產(chǎn)品

2023-09-22 10:32:17

SQL大數(shù)據(jù)

2012-11-15 09:27:21

2018-11-01 10:04:49

WiFi網(wǎng)速無線
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品一区在线免费观看 | 国产成人综合在线 | 午夜精品一区二区三区在线观看 | 久久国产精品一区二区三区 | 一区二区不卡视频 | 久久99蜜桃综合影院免费观看 | 欧美午夜精品 | 69堂永久69tangcom| 亚洲精品成人网 | 精品三区 | 国产精品久久久久久久久久免费看 | www.久久| 亚洲一二三在线观看 | 黄色三级免费 | 91麻豆久久久| 四虎影院久久 | 久久精品视频免费观看 | 看毛片的网站 | 欧美精品二区三区 | 黄色成人免费看 | 亚洲性视频网站 | 97视频在线观看网站 | 欧美日韩国产一区二区三区 | 国产精品久久久久久久久图文区 | 99久久婷婷| 日韩免费激情视频 | 四虎影视免费在线 | 蜜桃av人人夜夜澡人人爽 | 久久久精品影院 | 欧美在线天堂 | av午夜激情 | 在线看h | 亚洲三级在线 | 中文字幕一区二区三区四区五区 | 国内精品久久久久久影视8 最新黄色在线观看 | 久久91av| 婷婷色国产偷v国产偷v小说 | 91亚洲国产成人精品一区二三 | 一区二区三区四区免费视频 | 精品国产91 | 天堂久久av |