中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

用Python做數據科學時容易忘記的八個要點分別是什么

發布時間:2021-10-28 18:05:45 來源:億速云 閱讀:145 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關用Python做數據科學時容易忘記的八個要點分別是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

  如果你發覺自己在編程時一次又一次地查找相同的問題、概念或是語法,你不是一個人!

  雖然我們在StackOverflow或其他網站上查找答案是很正常的事情,但這樣做確實比較花時間,也讓人懷疑你是否完全理解了這門編程語言。

  我們現在生活的世界里,似乎有著無限的免費資源,而你只需要一次搜索即可獲得。然而,這既是這個時代的幸事,也是一種詛咒。如果沒能有效利用資源,而是對它們過度依賴,你就會養成不良的習慣,長期處于不利境地。

  用Python做數據科學時容易忘記的八個要點分別是什么

  當我谷歌一個問題,發現有人提了同樣問題,但下面只有一個回答,而且2003年以后就再也沒有新的答案的時候,我真是和那個提問者同病相憐!弱小,可憐又無助!

  “你是誰!你在哪兒!最后你發現了啥!”

  就個人而言,我發現自己也是多次從類似的技術問答中找代碼(見上文插圖漫畫);而不是花時間學習和鞏固概念,以便下次可以自己把代碼寫出來。

  網上搜索答案是一種懶惰的行為,雖然在短期內它可能是最簡便的途徑,但它終究不利于你的成長,并且會降低工作效率和對語法的熟知能力(咳咳,面試的時候這些知識很重要)。

  目標

  最近,我一直在Udemy學習名為Python for Data Science and Machine Learning的數據科學在線課程。在該系列課程的早期課件中,我想起了用Python做數據分析時一直被我忽略的一些概念和語法。

  為了一勞永逸地鞏固我對這些概念的理解,并為大家免去一些StackOverflow的搜索,我在文章中整理了自己在使用Python,NumPy和Pandas時總是忘記的東西。

  我為每個要點提供了簡短的描述和示例。為了給讀者帶來福利,我還添加了視頻和其他資源的鏈接,以便大家更深入地了解各個概念。

  單行List Comprehension

  每次需要定義某種列表時都要寫for循環是很乏味的,好在Python有一種內置的方法可以用一行代碼解決這個問題。該語法可能有點難以理解,但是一旦熟悉了這種技巧,你就會經常使用它。

  用Python做數據科學時容易忘記的八個要點分別是什么

  * Line 8是對for loop的單行簡化

  請參閱上圖和下文的示例,比較一下在創建列表時,你通常使用的for循環樣板和以單行代碼創建這二者之間的差別。

  x = [1,2,3,4] out = [] for item in x: out.append(item**2) print(out) [1, 4, 9, 16] # vs. x = [1,2,3,4] out = [item**2 for item in x] print(out) [1, 4, 9, 16]

  Lambda 函數

  編程的過程中經常為了實現最后的功能,創建一個又一個階段性的函數,這些函數往往就只用一兩次。這個過程很煩人。這時候Lambda函數來搭救你了!

  Lambda函數用于在Python中創建小型的,一次性的和匿名的函數對象。基本上,它們可以讓你“在不創建新函數的情況下”創建一個函數。

  lambda函數的基本語法如下:

  lambda arguments: expression

  所以,只要給它一個表達式,lambda函數可以執行所有常規函數可執行的操作。請看下面的簡單示例和后文中的視頻,以更好地感受lambda函數強大的功能。

  double = lambda x: x * 2 print(double(5)) 10

  Map和Filter

  一旦掌握了lambda函數,并學會將它們與map和filter函數配合使用,你將擁有一個強大的工具。

  具體來說,map函數接受一個列表并通過對每個元素執行某種操作來將其轉換為新列表。在下面的示例中,它遍歷每個元素并將其乘以2的結果映射到新列表。請注意,這里的list函數只是將輸出轉換為列表類型。

  # Map seq = [1, 2, 3, 4, 5] result = list(map(lambda var: var*2, seq)) print(result) [2, 4, 6, 8, 10]

  filter函數需要的輸入是列表和規則,非常類似于map,但它通過將每個元素與布爾過濾規則進行比較來返回原始列表的子集。

  # Filter seq = [1, 2, 3, 4, 5] result = list(filter(lambda x: x > 2, seq)) print(result) [3, 4, 5]

  Arange和Linspace

  要創建快速簡單的NumPy數組,可以查看arange和linspace函數。它們都有特定的用途,但在這里我們看中的是它們都輸出Numpy數組(而非其使用范圍),這通常更容易用于數據科學。

  Arange在給定的范圍內返回間隔均勻的值。除了起始值和終止值,你還可以根據需要定義步長或數據類型。請注意,終止值是一個“截止”值,因此它不會被包含在數組輸出中。

  # np.arange(start, stop, step) np.arange(3, 7, 2) array([3, 5])

  Linspace與Arange非常相似,但略有不同。Linspace是在指定的范圍內返回指定個數的間隔均勻的數字。所以給定一個起始值和終止值,并指定返回值的個數,linspace將根據你指定的個數在NumPy數組中劃好等分。這對于數據可視化和在定義圖表坐標軸時特別有用。

  # np.linspace(start, stop, num) np.linspace(2.0, 3.0, num=5) array([ 2.0, 2.25, 2.5, 2.75, 3.0])

  Axis的真正意義

  在Pandas中刪除列或在NumPy矩陣中對值進行求和時,可能會遇到這問題。即使沒有,那么你也肯定會在將來的某個時候碰到。我們現在來看看刪除列的示例:

  df.drop('Row A', axis=0) df.drop('Column A', axis=1)

  在我知道自己為什么要這樣定義坐標軸之前,我不知道我寫了多少次這行代碼。你可以從上面看出,如果要處理列,就將axis設為1,如果要處理行,則將其設為0。

  但為什么會這樣呢?我記得我最喜歡的解釋是這個:

  df.shape (# of Rows, # of Columns)

  從Pandas的dataframe調用shape屬性時會返回一個元組,其中第一個值表示行數,第二個值表示列數。如果你想想在Python中是如何建立索引的,即行為0,列為1,會發現這與我們定義坐標軸值的方式非常相似。很有趣吧!

  Concat, Merge, 和Join

  如果你熟悉SQL,那么這些概念對你來說可能會更容易。無論如何,這些功能基本上就是以特定方式組合dataframe的方法。可能很難評判在什么時候使用哪個最好,所以讓我們都回顧一下。

  Concat允許用戶在其下方或旁邊附加一個或多個dataframe(取決于你如何定義軸)。

  用Python做數據科學時容易忘記的八個要點分別是什么

  Merge可以基于特定的、共有的主鍵(Primary Key)組合多個dataframe。

  用Python做數據科學時容易忘記的八個要點分別是什么

  Join,就像merge一樣,可以組合兩個dataframe。但是,它根據它們的索引進行組合,而不是某些特定的主鍵。

  用Python做數據科學時容易忘記的八個要點分別是什么

  大家可以查看很有幫助的Pandas文檔,了解語法和具體示例和你可能會遇到的特殊情況。

  Pandas Apply

  apply類似于map函數,不過它是用于Pandas DataFrames的,或者更具體地說是用于Series的。如果你不熟悉也沒關系,Series在很大程度上與NumPy中的陣列(array)非常相似。

  Apply會根據你指定的內容向列或行中的每個元素發送一個函數。你可以想象這是多么有用,特別是在對整個DataFrame的列處理格式或運算數值的時候,可以省去循環。

  透視表

  最后要說到的是透視表。如果你熟悉Microsoft Excel,那么你可能已經聽說過數據透視表。Pandas內置的pivot_table函數將電子表格樣式的數據透視表創建為DataFrame。請注意,透視表中的維度存儲在MultiIndex對象中,用來聲明DataFrame的index和columns。

  結語

  我的這些Python編程小貼士就到此為止啦。我希望我介紹的這些在使用Python做數據科學時經常遇到的重要但又有點棘手的方法、函數和概念能給你帶來幫助。

  而我自己在整理這些內容并試圖用簡單的術語來闡述它們的過程中也受益良多。

以上就是用Python做數據科學時容易忘記的八個要點分別是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇信县| 林州市| 抚顺市| 从江县| 高青县| 巴彦县| 通江县| 汤阴县| 六盘水市| 贵溪市| 桃园县| 齐河县| 沧源| 衡水市| 巴林右旗| 城步| 翼城县| 武邑县| 泉州市| 泰安市| 广州市| 平果县| 壤塘县| 祁阳县| 仁化县| 都匀市| 辰溪县| 中江县| 西林县| 泰顺县| 鄂托克前旗| 英山县| 新宾| 兰考县| 合肥市| 格尔木市| 施秉县| 德安县| 新竹县| 营口市| 扎鲁特旗|