NumPy庫學習python
一.數據的維度程序員
數據的維度是數據的組織形式。json
二.數據維度的python表示數組
#一維數據:列表和集合類型 [1,2,3] #有序 {1,2,3} #無序 #二維數據:列表類型 [[1,2,3], [4,5,6]] #多維數據 [[[1,2,3], [4,5,6]], [7,8,9], [4,4,4]] #高維數據:字典類型或數據表示格式,例如JSON、XML、YAML dict={ 'firstName':'Tian', 'lastName':'Song', }
三.NumPy的多維數組對象:ndarrayapp
1.NumPy是一個開源的python科學計算基礎庫,包含:函數
NumPy是SciPy、Pandas等數據處理或科學計算庫的基礎工具
2.NumPy的引用:性能
import numpy as np #這是一種約定俗成的引用名稱,建議使用上述約定的別名
3.python已經有列表類型,爲何須要一個數組對象?學習
例如如下事例:優化
#計算A^2+B^2,其中A和B是一維數組 import numpy as np #使用列表的方式 def pySum(): a=[0,1,2,3,4] b=[5,6,7,8,9] c=[] for i in range(len(a)): c.append(a[i]**2+b[i]**2) return c print("pySum-->",pySum()) #使用數組的方式 def npSum(): a=np.array([0,1,2,3,4]) b=np.array([5,6,7,8,9]) c=a**2+b**2 return c print("npSum-->",npSum()) #運行結果 ''' pySum--> [25, 37, 53, 73, 97] npSum--> [25 37 53 73 97] ''' #可見若是採用數組的方式,numy把一維向量看成單個數據對待,這樣更有利於進行科學計算
4.ndarray對象的構成:
ndarray數組通常要求全部元素類型相同(同質),數組下標從0開始
ndarry實例:
import numpy as np #ndarray在程序中的別名是:array #np.array()生成一個ndarray數組 a=np.array([[0,1,2,3,4], [5,6,7,8,9]]) print(a) #np.array()輸出成[]形式,元素有空格分割 ''' [[0 1 2 3 4] [5 6 7 8 9]] ''' #軸(axis):保存數據的維度;秩(rank):軸的數量
5.ndarray對象的屬性
實例:
import numpy as np a=np.array([[1,2,3,4], [5,6,7,8]]) print("維度:",a.ndim) print("尺度:",a.shape) print("元素個數:",a.size) print("元素的類型:",a.dtype) print("元素的大小:",a.itemsize) ''' 維度: 2 尺度: (2, 4) 元素個數: 8 元素的類型: int32 元素的大小: 4 '''
6.ndarray的元素類型
ndarrya爲何要支持這麼多種元素類型?
7.非同質的ndarray對象
非同質的ndarray元素爲對象類型,沒法有效發揮NumPy優點,儘可能避免使用
import numpy as np a=np.array([[1,2,3,4], [5,6,7]]) print("尺度:",a.shape) print("元素個數:",a.size) print("元素的類型:",a.dtype) print("元素的大小:",a.itemsize) ''' 尺度: (2,) 元素個數: 2 元素的類型: object 元素的大小: 8 ''' #此時每一個一維向量被當成一個對象(元素)
8.ndarray數組的建立
(1)從python中的列表、元組等類型建立ndarray數組
x=np.array(list/tuple,dtype=np.float32) #當np.array()不指定dtype時,NumPy將根據狀況關聯一個dtype類型
例子:
(2)使用NumPy中函數建立ndarray數組,如:arrange,ones,zeros
#######
注:使用np.arange()方法建立的數組默認是int32類型,另外幾種方法默認是float類型
例子:
例子:
例子:
9.ndarray數組的變換
(1)ndarray數組的維度變換
例子:
(2)ndarray數組的類型變換
new_a = a.astype(new_type)
#astype()方法必定會建立新的數組()原始數組的一個拷貝,即便兩個類型一致
例子:
(3)ndarray數組向列表的轉換
ls=a.tolist()
例子:
10.ndarray數組的操做
(1)ndarray數組的索引和切片
一維數組的索引和切片:與python的列表相似
多維數組的索引:
多維數組的切片:
(2)ndarray數組的運算
數組與標量之間的運算做用於數組的每個元素
(3)NumPy一元函數
例子:
(4)NumPy二元函數
例子: