NumPy是Python中科學計算的基礎包,它是一個Python庫,提供多維陣列物件,各種派生物件(如掩碼陣列和矩陣),以及用于陣列快速操作的各種API,有包括數學、邏輯、形狀操作、排序、選擇、輸入輸出、離散傅立葉變換、基本線性代數,基本統計運算和隨機模擬等等,
詳細學習可前往numpy中文網:https://www.numpy.org.cn/
numpy必拿下
- 創建陣列:
- 陣列的計算:
- 陣列的索引、切片、迭代
創建陣列:
可以使用array函式從常規Python串列或元組中創建陣列,得到的陣列的型別是從Python串列中元素的型別推匯出來的,即陣列元素型別和Python串列或元組里的元素型別相同 ,
(代碼的運行結果將會寫在注釋中)
import numpy as np
#將串列轉換為陣列
array = np.array([[1,2,3],
[4,5,6]])
print(array)
#[[1 2 3]
# [4 5 6]]
array = np.array(((1,2,3),
(4,5,6)))
print(array)
#[[1 2 3]
# [4 5 6]]
若陣列元素未知,但是陣列大小已知,NumPy提供了幾個函式來創建具有初始占位符內容的陣列,
- zeros():可以創建指定長度或者形狀的全0陣列
- ones():可以創建指定長度或者形狀的全1陣列
- empty():創建一個陣列,其初始內容是隨機的,取決于記憶體的狀態
import numpy as np
zeroarray = np.zeros((2,3))
print(zeroarray)
#[[0. 0. 0.]
# [0. 0. 0.]]
onearray = np.ones((3,4))
print(onearray)
#[[1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]]
emptyarray = np.empty((3,4))
print(emptyarray)
# [[1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]]
為了創建數字組成的陣列,NumPy提供了一個類似于range的函式,使用方法同類似于range函式
import numpy as np
array = np.arange( 10, 31,5 )
print(array)
#[10 15 20 25 30]
輸出陣列資訊:
import numpy as np
array = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print(array)
# [[ 1 2 3]
# [ 4 5 6]
# [ 7 8 9]
# [10 11 12]]
#陣列維度
print(array.ndim)
#2
#陣列形狀
print(array.shape)
#(4, 3)
#陣列元素個數
print(array.size)
#12
#陣列元素型別
print(array.dtype)
#int32
陣列的計算:
基礎運算:
import numpy as np
arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.ones([2,3])
print(arr1 + arr2)
# [[2. 3. 4.]
# [5. 6. 7.]]
print(arr1 - arr2)
# [[0. 1. 2.]
# [3. 4. 5.]]
print(arr1 * arr2)
# [[1. 2. 3.]
# [4. 5. 6.]]
print(arr2 / arr1)
# [[1. 0.5 0.33333333]
# [0.25 0.2 0.16666667]]
print(arr1 ** 2)
# [[ 1 4 9]
# [16 25 36]]
值得注意的是,這里的運算是矩陣對應元素的運算,包括乘以及冪運算,因此如果兩個矩陣大小不一,會產生錯誤,
矩陣乘法
import numpy as np
arr3 = np.array([[1,2,3],[4,5,6]])
arr4 = np.ones([3,2],dtype=np.int64)
print(np.dot(arr3,arr4))
# [[ 6 6]
# [15 15]]
矩陣的轉置和flatten(這個中文不太好描述…變平??)
import numpy as np
arr3 = np.array([[1,2,3],[4,5,6]])
arr3_tran = arr3.transpose()
print(arr3)
# [[1 2 3]
# [4 5 6]]
print(arr3_tran)
# [[1 4]
# [2 5]
# [3 6]]
print(arr3.flatten())
# [1 2 3 4 5 6]
陣列的索引、切片、迭代
同python其他序列型別一樣
import numpy as np
arr5 = np.arange(0,6).reshape([2,3])
print(arr5)
# [[0 1 2]
# [3 4 5]]
print(arr5[1])
#[3 4 5]
print(arr5[1][2])
#5
print(arr5[1,2])
#5
print(arr5[1,:])
#[3 4 5]
print(arr5[:,1])
#[1 4]
print(arr5[1,0:2])
# [3 4]
for i in arr5:
print(i**2)
#[0 1 4]
#[ 9 16 25]
基礎操作大概這些,更多內容還是要去Numpy中文網:https://www.numpy.org.cn/
本文如果有錯誤,或者對內容存在問題,歡迎在評論區交流~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/239671.html
標籤:python
