天天看點

Python資料分析基礎——numpy用法

基本參數

import numpy as np
array=np.array([[1,2,3],
                [2,3,4]])
print(array)
print("number of dim:",array.ndim)
print("shape:",array.shape)
print("size:",array.size)
a=np.array([2,23,4],dtype=np.int64)
print(a)
print(a.dtype)
           

自定義生成數組

a=np.array(range(10,20,2))
print(a)
a=np.arange(10,20,2)
print(a)
a=np.arange(12).reshape((3,4))
print(a)
a=np.zeros((3,4))
print(a)
a=np.ones((3,4),dtype=np.int16)
print(a)
a=np.empty((3,4))
print(a)
           

N等分linspace

a=np.linspace(1,10,5)
a=np.linspace(1,10,6).reshape((2,3))
           

互相運算

a=np.array([[10,20],
           [30,40]])
b=np.arange(4).reshape((2,2))
c=a-b
c=b**2
c=10*np.sin(a)
print(b)
print(b==3)#邏輯運算
c=a*b#對應元素直接相乘
c_dot=np.dot(a,b)#矩陣運算
c_dot2=a.dot(b)#矩陣運算
print(a)
print(b)
print(c)
print(c_dot)
print(c_dot2)
           

對行列元素進行操作

a=np.random.random((2,4))
print(a)
print(np.sum(a,axis=1))##0為每一列求和,1為在行求和
print(np.min(a,axis=0))
print(np.max(a))
           

内部運算

a=np.arange(14,2,-1).reshape((3,4))
print(a)
print(np.argmin(a))#傳回最小值的下标
print(np.argmax(a))#傳回最小值的上标
print(np.mean(a))
print(np.mean(a,axis=0))
print(np.average(a))
print(np.median(a))
print(np.cumsum(a))元素累加
print(np.diff(a))#前後相減
print(np.clip(a,5,9))##限定最大最小值
print(np.nonzero(a))#傳回的索引值數組是一個2維tuple數組
print(np.sort(a))##逐行排序
print((a.T))#轉置
print((a.T).dot(a))
c_dot=np.dot((a.T),a)
           

元素修改

a=np.arange(3,15).reshape((3,4))
print(a)
print(a[2])
print(a[1][1])
print(a[1,1])
print(a[:,1])
print(a[1,1:3])
           

行、列、元素的周遊循環

for row in a:
    print(row)
for column in a.T:
    print(column)
print(a.flatten())
for item in a.flat:
    print(item)
           

橫向、縱向合并

#a=np.array([[1,1,1],
           [2,3,4]])
a=np.array([1,1,1])
b=np.array([2,2,2])
print(a)
print(a.T)
print(np.hstack((a,b)))#水準合并
print(np.hstack(((a.T),(b.T))))#水準合并
c=np.vstack((a,b))#縱向合并
print(c)
print(a.shape,c.shape)
print(np.hstack((a,b)))##左右合并
print(np.hstack((a,b)).shape)
           

新增軸newaxis

a=np.array([[1,1,1],
           [2,3,4]])
#a=np.array([1,1,1])
b=np.array([2,2,2])
a=a[:,np.newaxis]
print(a)
print(b)
print(a.shape)
b=b[np.newaxis,:]
b=b[:,np.newaxis]
print(b)
print(b.shape)
           
a=np.array([1,1,1])[:,np.newaxis]
b=np.array([2,2,2])[:,np.newaxis]
print(a)
print(b)
print(np.hstack((a,b)))
print(a.shape,np.hstack((a,b)).shape)
print(np.concatenate((a,b,b,a),axis=0))
           

split

a=np.arange(12).reshape(3,4)
print(a)
print(np.split(a,2,axis=1))
print(np.split(a,3,axis=0))
print(np.array_split(a,3,axis=1))
print(np.vsplit(a,3))
print(np.hsplit(a,2))
           

替換、關聯與複制

a=np.arange(4)
print(a)
b=a
# c=a
d=b
a[0]=11
print(a)
print(b is a)
print(b)
d[1:3]=[22,33]#預設相關聯
print(a)
b=a.copy()##不關聯
a[3]=44
print(b)