【Python基础】python必会的10个知识点
來源 | Towards Data Science
作者 | Soner?Yildirim
編譯 | VK
Python在數據科學生態系統中占據主導地位。我認為,占據主導地位的兩大原因是相對容易學習和數據科學庫的豐富選擇。
Python是一種通用語言,因此它不僅僅用于數據科學,Web開發、移動應用程序和游戲開發也是Python的一些用例。
如果你僅將Python用于與數據科學相關的任務,那么你不必是Python專家。不過,我認為你必須掌握一些核心概念和功能。
我們在本文中介紹的內容不是特定于庫的。它們可以被認為是數據科學的基礎Python。即使你只使用Pandas、Matplotlib和sciket learn,也需要全面了解Python基礎知識。這些庫假設你熟悉Python的基礎知識。
我將用幾個例子簡要地解釋每個主題,并為大多數主題提供一個詳細文章的鏈接。
1.函數
函數是Python中的構建塊。它們接受零個或多個參數并返回一個值。我們使用def關鍵字創建一個函數。
這是一個簡單的函數,它將兩個數相乘。
def multiply(a, b):return a * bmultiply(5, 4) 20下面是另一個根據單詞長度進行相關計算的示例。
def is_long(word):if len(word) > 8:return f"{word} is a long word."is_long("artificial") 'artificial is a long word.'函數應該完成一項任務。創建一個執行一系列任務的函數違背了使用函數的目的。
我們還應該為函數指定描述性名稱,這樣我們就可以在不看到代碼的情況下了解函數的功能。
2.位置參數和關鍵字參數
當我們定義一個函數時,我們指定它的參數。調用函數時,必須為其提供所需參數的值。
考慮在上一步中創建的乘法函數。它有兩個參數,所以我們在調用函數時為這些參數提供值。
位置參數僅由名稱聲明。
關鍵字參數由名稱和默認值聲明。
調用函數時,必須給出位置參數的值。否則,我們將得到一個錯誤。如果我們不為關鍵字參數指定值,它將采用默認值。
讓我們用關鍵字參數重新定義multiply函數,這樣我們就可以看到區別了。
def multiply(a=1, b=1):return a * bprint(multiply(5, 4)) 20print(multiply()) 13.args和*kwargs
函數是Python中的構建塊。它們接受零個或多個參數并返回一個值。Python在參數如何傳遞給函數方面非常靈活。args和*kwargs使處理參數更容易、更清晰。
*args允許函數接受任意數量的位置參數。
下面是一個簡單的例子:
def addition(*args):result = 0for i in args:result += ireturn resultprint(addition(1,4)) 5print(addition(1,7,3)) 11**kwargs允許函數接受任意數量的關鍵字參數。
默認情況下,**kwargs是一個空字典。每個未定義的關鍵字參數都作為鍵值對存儲在**kwargs字典中。
下面是一個簡單的例子:
def arg_printer(a, b, option=True, **kwargs):print(a, b)print(option)print(kwargs)arg_printer(3, 4, param1=5, param2=6) 3 4 True {'param1': 5, 'param2': 6}https://towardsdatascience.com/10-examples-to-master-args-and-kwargs-in-python-6f1e8cc30749
4.類
面向對象編程(OOP)范式是圍繞著擁有屬于特定類型的對象的思想構建的。從某種意義上說,類型是解釋我們的對象。
Python中的所有東西都是一種類型的對象,比如整數、列表、字典、函數等等。我們使用類定義一種對象類型。
類具有以下信息:
數據屬性:創建類的實例需要什么
方法(即過程屬性):我們如何與類的實例交互。
https://towardsdatascience.com/a-comprehensive-guide-for-classes-in-python-e6bb72a25a5e
5.列表
List是Python中的內置數據結構。它表示為方括號中的數據點集合。列表可用于存儲任何數據類型或不同數據類型的混合。
列表是可變的,這也是為什么它們如此常用的原因之一。因此,我們可以刪除和添加項。也可以更新列表中的項目。
下面是一些關于如何創建和修改列表的示例。
words = ['data','science'] # 創建一個列表print(words[0]) # 訪問項目 'data'words.append('machine') # 添加項目print(len(words)) # 列表長度 3print(words) ['data', 'science', 'machine']https://towardsdatascience.com/11-must-know-operations-to-master-python-lists-f03c71b6bbb6
6.列表生成式
列表生成式用更簡單、更吸引人的語法表示for和if循環。列表生成式相對比for循環快。
下面是一個簡單的列表生成式,它根據給定的條件從另一個列表創建一個列表。
a = [4,6,7,3,2]b = [x for x in a if x > 5] b [6, 7]下面的列表將函數應用于另一個列表中的項。
words = ['data','science','machine','learning']b = [len(word) for word in words] b [4, 7, 7, 8]https://towardsdatascience.com/11-examples-to-master-python-list-comprehensions-33c681b56212
7.字典
字典是一個無序的鍵值對集合。每個條目都有一個鍵和值。字典可以看作是一個有特殊索引的列表。
密鑰必須是唯一且不可變的。所以我們可以使用字符串、數字(int或float)或元組作為鍵。值可以是任何類型。
考慮一個需要存儲學生成績的案例。我們可以把它們存儲在字典或列表中。
創建字典的一種方法是在大括號中編寫鍵值對。
grades = {'John':'A', 'Emily':'A+', 'Betty':'B', 'Mike':'C', 'Ashley':'A'}我們可以使用字典中的值的鍵來訪問它。
grades['John'] 'A'grades.get('Betty') 'B'https://towardsdatascience.com/12-examples-to-master-python-dictionaries-5a8bcd688c6d
8.集合
集合是不同的可散列對象的無序集合。這是Python官方文檔中對集合的定義。讓我們打開它。
無序集合:它包含零個或多個元素。集合中的元素沒有順序。因此,它不支持索引或切片,就像我們對列表所做的那樣。
不同的可散列對象:一個集合包含唯一的元素。hashable表示不可變。盡管集合是可變的,但集合的元素必須是不變的。
我們可以通過將逗號分隔的對象放在大括號中來創建一個集合。
a = {1, 4, 'foo'}print(type(a)) <class 'set'>集合不包含重復的元素,因此即使我們多次嘗試添加相同的元素,結果集合也將包含唯一的元素。
a = {1, 4, 'foo', 4, 'foo'}print(a) {1, 4, 'foo'}https://towardsdatascience.com/12-examples-to-master-python-sets-71802ea56de3
9.元組
元組是用逗號分隔并用括號括起來的值的集合。與列表不同,元組是不可變的。元組的不變性可以看作元組的識別特征。
元組由括號中的值和逗號分隔的值組成。
a = (3, 4)print(type(a)) <class 'tuple'>我們也可以不使用括號來創建元組。用逗號分隔的值序列將創建一個元組。
a = 3, 4, 5, 6print(type(a)) <class 'tuple'>元組最常見的用例之一是返回多個值的函數。
import numpy as npdef count_sum(arr):count = len(arr)sum = arr.sum()return count, sumarr = np.random.randint(10, size=8) a = count_sum(arr)print(a) (8, 39)print(type(a)) <class 'tuple'>https://towardsdatascience.com/10-examples-to-master-python-tuples-6c606ed42b96
10.Lambda表達式
Lambda表達式是函數的特殊形式。通常,lambda表達式不帶名稱。
考慮以下返回給定數字平方的函數。
def square(x):return x**2等效lambda表達式為:
lambda x: x ** 2考慮一個需要做一次或幾次的操作。此外,我們有許多變化,這一行動是略有不同,比原來的一個。在這種情況下,為每個操作定義一個單獨的函數并不理想。相反,lambda表達式提供了一種更有效的方法來完成任務。
https://towardsdatascience.com/the-power-of-lambda-expressions-in-python-c5a1dcea9837
結論
我們已經介紹了Python的一些關鍵概念和主題。大多數與數據科學相關的任務都是通過第三方庫和框架完成的,如Pandas、Matplotlib、sciket-learn、TensorFlow等。
但是,我們應該全面了解Python的基本操作和概念,以便有效地使用這些庫。
謝謝你的閱讀。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯溫州大學《機器學習課程》視頻 本站qq群851320808,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【Python基础】python必会的10个知识点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IE浏览器开发人员工具怎么使用
- 下一篇: 【Python】Python处理图像五个