Numpy數組創建實戰
學習目標
通過本課程的學習,學員將掌握使用Numpy庫創建不同類型的數組的方法,包括一維數組、多維數組、全零數組、全一陣列、空數組等。本課程將通過理論講解與實踐操作相結合的方式,幫助學員深入理解Numpy數組的創建過程及其應用場景。
相關知識點
Numpy數組應用
學習內容
1 Numpy數組應用
1.1 Numpy數組的基本概念
Numpy是Python中用于處理數組的一個庫,它提供了大量的函數用于數組的創建、操作和數學運算。Numpy數組(ndarray)是Numpy的核心對象,它是一個固定類型的多維數組,其中所有元素必須是相同類型,通常為數字。Numpy數組相比于Python內置的列表,具有更高的效率和更多的功能。
Numpy數組的創建可以通過多種方式實現,包括從Python列表轉換、使用特定的函數創建等。Numpy數組支持多種數據類型,如整型、浮點型、復數型等,這些數據類型在創建數組時可以通過dtype參數指定。
1.1.1 Numpy數組的屬性
Numpy數組有幾個重要的屬性,這些屬性可以幫助人們更好地理解和操作數組:
- ndim:數組的維度數。
- shape:一個表示數組形狀的元組,對于二維數組,shape將返回一個包含行數和列數的元組。
- size:數組中元素的總數。
- dtype:數組中元素的數據類型。
- itemsize:數組中每個元素的字節大小。
- data:包含實際數組元素的緩沖區。
1.1.2 創建Numpy數組
創建Numpy數組最簡單的方法是從Python列表轉換而來。例如,創建一個一維數組:
import numpy as np# 從Python列表創建一維數組
arr = np.array([1, 2, 3, 4, 5])
print(arr)
print(type(arr))
輸出:
[1 2 3 4 5]
<class 'numpy.ndarray'>
1.2 使用Numpy創建一維和多維數組
Numpy提供了多種方法來創建一維和多維數組,這些方法可以根據不同的需求靈活使用。
1.2.1 創建一維數組
一維數組是最簡單的Numpy數組形式,可以通過從Python列表轉換或使用np.arange函數創建。
import numpy as np
# 從Python列表創建一維數組
arr1 = np.array([1, 2, 3, 4, 5])
print("從列表創建的一維數組:", arr1)# 使用np.arange創建一維數組
arr2 = np.arange(1, 6)
print("使用np.arange創建的一維數組:", arr2)
1.2.2 創建多維數組
多維數組可以通過嵌套的Python列表或使用np.array函數直接創建。Numpy還提供了np.zeros、np.ones等函數來創建特定形狀的多維數組。
import numpy as np
# 從嵌套列表創建二維數組
arr3 = np.array([[1, 2, 3], [4, 5, 6]])
print("從嵌套列表創建的二維數組:\n", arr3)# 使用np.zeros創建全零二維數組
arr4 = np.zeros((3, 4))
print("使用np.zeros創建的全零二維數組:\n", arr4)# 使用np.ones創建全一二維數組
arr5 = np.ones((2, 3))
print("使用np.ones創建的全一二維數組:\n", arr5)
1.3 創建特殊類型的數組
Numpy還提供了一些特殊的函數來創建特定類型的數組,這些數組在實際應用中非常有用。
1.3.1 創建全零數組
全零數組在初始化變量或作為占位符時非常有用。可以使用np.zeros函數創建全零數組。
import numpy as np
# 創建全零一維數組
zero_arr1 = np.zeros(5)
print("全零一維數組:", zero_arr1)# 創建全零二維數組
zero_arr2 = np.zeros((3, 4))
print("全零二維數組:\n", zero_arr2)
1.3.2 創建全一陣列
全一陣列在初始化變量或作為占位符時也非常有用。可以使用np.ones函數創建全一陣列。
import numpy as np
# 創建全一一維數組
one_arr1 = np.ones(5)
print("全一一維數組:", one_arr1)# 創建全一二維數組
one_arr2 = np.ones((3, 4))
print("全一二維數組:\n", one_arr2)
1.3.3 創建空數組
空數組在某些情況下用于初始化化,但不分配具體的值。可以使用numpy.empty()函數創建空數組。numpy.empty()的“空”主要體現在它只是簡單地在內存中分配了一塊空間來存儲指定形狀的數組,而不對這塊內存中的數據進行初始化,所以數組中的值都是隨機的(實際上是內存中原有的值)。
這里創建的數組可能出現值全是1的情況,因為在使用numpy.empty()之前,使用了np.ones()函數創建數組,導致分配給numpy.empty()的內存區域中殘留的值恰好都是1。這種情況是由于內存的分配和釋放機制造成的,并不代表numpy.empty()創建的數組值總是全為1。實際上,numpy.empty()創建的數組中的值是未定義的,取決于內存的初始狀態,可能為任意值。
import numpy as np
# 創建空一維數組
empty_arr1 = np.empty(5)
print("空一維數組:", empty_arr1)# 創建空二維數組
empty_arr2 = np.empty((3, 4))
print("空二維數組:\n", empty_arr2)
如果想看到更類似隨機的值,可以重啟內核后直接運行創建空數組的代碼塊,或者更改所創建數組的形狀(如np.empty(2)、np.empty(8)、np.empty((4, 4))等),這樣可能會改變使用的內存空間從而看到不一樣的值。
通過本課程的學習,我們已經掌握了使用Numpy創建不同類型的數組的方法。這些知識將為后續的數組操作和數學運算打下堅實的基礎。希望學員在實際應用中能夠靈活運用這些技能,提高編程效率。
1. Numpy入門:數組操作與科學計算基礎
2. Numpy入門:多平臺安裝與基礎環境配置
3. Numpy數組創建與應用入門
4. Numpy數組屬性入門:形狀、維度與大小
5. Numpy數組索引與切片入門
6. Numpy數組操作入門:合并、分割與重塑
7. Numpy數學函數入門與實踐
8. Numpy數據分析基礎:統計函數應用
9. Numpy隨機數生成入門
10. Numpy線性代數基礎與實踐
11. Numpy文件操作入門:數組數據的讀取與保存
12. Numpy廣播機制入門與實踐
13. Numpy布爾索引與花式索引實戰
14. Numpy高效數據處理與優化
15. Numpy數據分析與圖像處理入門