首頁>技術>

本文連結:https://blog.csdn.net/splnn/article/details/111596363

NumPy是Python中科學計算的基礎包。它是一個Python庫,提供多維陣列物件,各種派生物件(如掩碼陣列和矩陣),以及用於陣列快速操作的各種API,有包括數學、邏輯、形狀操作、排序、選擇、輸入輸出、離散傅立葉變換、基本線性代數,基本統計運算和隨機模擬等等。

建立陣列:

可以使用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 npzeroarray = 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 nparray = np.arange( 10, 31,5 )print(array)#[10 15 20 25 30]

輸出陣列資訊:

import numpy as nparray = 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 nparr1 = 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 nparr3 = 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 nparr3 = 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 nparr5 = 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])#5print(arr5[1,2])#5print(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/

5
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 乾貨 利用python的requests模組獲取HTTP資訊