和大家分享下今天學習的numpy,作爲數據分析的話,numpy還是很有用的,不瞎逼逼了,直接上我今天敲得代碼。
import numpy as np # #創建二維數組 # list2 = [[1,2],[3,4],[5,6]] # # twoArray = np.array(list2) # print(twoArray) # # #獲取數組的維度 # print(twoArray.ndim) # # #獲取數組的形狀 # print(twoArray.shape) # # #獲取有多少個元素 # print(twoArray.size) '''調整數組的形狀''' #four = np.array([[1,2,3],[4,5,6]]) #修改的是原有的 # four.shape = (3,2) # print(four) #返回一個新的數組 # four = four.reshape(3,2) # print(four) #將多維變成一維數組 # five = four.reshape((6,),order = 'F') # print(five) # six = four.flatten(order = 'F') # print(six) #數組的形狀 # t = np.arange(24) # print(t) # print(t.shape) # #轉換成二維 # t1 = t.reshape(4,6) # print(t1) # #轉換成三維 # t2 = t.reshape((2,3,4)) # print(t2) # print(t2.shape) #將數組轉換成list # a = np.array([9,12,88,14,25]) # list_a = a.tolist() # print(list_a) # print(type(list_a)) '''Numpy的數據類型''' # f = np.array([1,2,3,4,5],dtype = np.int16) # #返回數組中每個元素的字節單位長度 # print(f.itemsize) # #獲取數據類型 # print(f.dtype) # # #調整數據類型 # f1 = f.astype(np.int64) # print(f1.dtype) #隨機生成小數 # import random # print(round(random.random(),2)) # # arr = np.array([random.random() for i in range(10)]) # print(arr) # print(np.round(arr,2)) '''數組的計算''' '''數組和數的計算''' # t1 = np.arange(24).reshape((6,4)) # # print(t1+2) # print(t1*2) # print(t1/2) #數組和數組之間的操作 # t1 = np.arange(24).reshape((6,4)) # t2 = np.arange(100,124).reshape((6,4)) # print(t1+t2) # print(t1*t2) #不同形狀的多維數組不能計算 # t1 = np.arange(24).reshape((4,6)) # t2 = np.arange(18).reshape((3,6)) # print(t1) # print(t2) # # print(t1-t2) '''行數或者列數相同的一位數組和多維數組可以進行計算: 行形狀相同(會與每一行數組的對應位相操作''' # t1 = np.arange(24).reshape((4,6)) # print(t1) # t2 = np.arange(0,6) # print(t2) # print(t1-t2) #列形狀相同(會與每一個相同維度的數組的對應位操作 # t1 = np.arange(24).reshape((4,6)) # print(t1) # t2 = np.arange(4).reshape((4,1)) # print(t2) # print(t1-t2) '''數組軸的計算''' # import numpy as np # a = np.array([[1,2,3],[4,5,6]]) # #求0軸上的和 # print(np.sum(a,axis = 0)) # #求1軸上的和 # print(np.sum(a,axis = 1)) # # #計算所有的值得和 # print(np.sum(a)) #三維的數據 # a = np.arange(27).reshape((3,3,3)) # #print(a) # b = np.sum(a,axis=0) # print(b) # # c = np.sum(a,axis = 1) # print(c) # # c = np.sum(a,axis = 2) # print(c) '''數組的索引與切片''' #一維數組的操作方法 # a = np.arange(10) # #冒號分割切片參數 start:stop:setp 來進行切片操作 # print(a) # #從索引2開始到索引7停止,間隔爲2 # print(a[2:7:1]) # # #如果只放置一個參數,如[2],將返回與該索引相對應的單個元素 # print(a[2]) # #如果爲[2:],表示從該索引開始以後的所有項都將被提取 # print(a[2:]) '''多維數組的操作方法''' # t1 = np.arange(24).reshape(4,6) # print(t1) # #取一行 # print(t1[1]) # #取連續多行 # print(t1[1:3,]) # #取不連續的多行 # print(t1[[1,2,3]]) #取一列 # print(t1[:,1]) # #取連續的多列 # print(t1[:,1:]) #取不連續的多列 #print(t1[:,[0,2,3]]) #取多個不連續的值 #print(t1[[0,1,1],[0,1,3]]) '''數組中的數值修改''' # t = np.arange(24).reshape(4,6) # print(t) #修改某一行的值 #t[1,:] = 0 #print(t) #修改某一列的值 #t[:,1] = 0 #print(t) #修改多個不相鄰的點 # t[[0,2],[0,3]] = 0 # print(t) #可以根據條件修改,比如講小於10的值改掉 # t[t<10] = 0 # print(t) '''數組的添加、刪除和去重''' #a = np.array([[1,2,3],[4,5,6]]) # print('第一個數組:') # print(a) # print('\n') # # print('向數組添加元素:') # print(np.append(a,[7,8,9])) # print('\n') # # # print('沿軸0添加元素') # # print(np.append(a,[[7,8,9]],axis=0)) # # print('\n') # # print('沿軸1添加元素') # print(np.append(a,[[7,8,9],[5,5,5]],axis=1)) '''數組中的刪除''' #方法numpt.deleter # # a = np.arange(12).reshape(3,4) # print('第一個數組:') # print(a) # print('\n') # # # print('未傳遞Axis參數,在刪除之前數組會被展開') # # print(np.delete(a,5)) # # print('\n') # # print('刪除每一行中的第二列:') # print(np.delete(a,1,axis = 1)) # print('\n') '''數組去重''' # a = np.array([5,2,6,2,7,5,6,8,2,9]) # print(a) # print('\n') # # print('第一個數組的去重值') # u = np.unique(a) # print(u) # print('\n') # # print('去重數組的索引數組') # u,indices = np.unique(a,return_index = True) # print(indices) # print('\n') # # print('我們可以看到每個和原數組下標對應的數值:') # print(a) # print('\n') # # print('去重數組的下標:') # u,indices = np.unique(a,return_inverse=True) # print(u) # print(indices) # print('\n') # print('返回去重元素的重複數量:') # u,indices = np.unique(a,return_counts=True) # print(u) # print(indices) '''數組的拼接''' #根據軸連接的數組序列 a = np.array([[1,2],[3,4]]) b = np.array([[5,6],[7,8]]) #要求a,b兩個數組的維度相同 # print('沿軸0連接兩個數組:') # print(np.concatenate((a,b),axis=0)) # print('\n') # print('沿軸1連接兩個數組:') # print(np.concatenate((a,b),axis=1)) #根據軸進行堆疊 # print('沿軸0連接2個數組') # print(np.stack((a,b),axis=0)) # print('\n') # print('沿軸1連接2個數組') # print(np.stack((a,b),axis =1)) # v1 = [[0,1,2,3,4,5], # [6,7,8,9,10,11]] # # v2 = [[12,13,14,15,16,17], # [18,19,20,21,22,23]] # result = np.stack((v1,v2)) # print(result) # # result1 = np.hstack((v1,v2)) # print(result1) '''數組的分割''' #arr = np.arange(9).reshape(3,3) #將數組分爲3個大小相等的子數組 # b = np.split(arr,3) # print(b) #numpy.hsplit函數用於水平分個數組,通過指定要返回的相同形狀的數組數量來拆分原數組 # haar = np.floor(10*np.random.random((2,6))) # print(haar) # print('拆分後:') # print(np.hsplit(haar,3)) # # #沿着垂直軸分割 # print(np.vsplit(haar,2)) '''二維數組的轉置''' # a = np.arange(12).reshape(3,4) # print('原數組:') # print(a) # print('\n') # # print('對換數組:') # print(np.transpose(a)) #與transpose一致 # a = np.arange(12).reshape(3,4) # print('原數組:') # print(a) # print('\n') # # print('轉置數組:') # print(a.T) #函數用於交換數組的兩個軸 t1 = np.arange(24).reshape(4,6) re = t1.swapaxes(1,0) print('原數組:') print(t1) print('\n') print('調用swapaxes函數後的數組:') print(re)
以上是我今天對於numpy的一些認識,希望對朋友們有一絲絲的幫助,那本人感覺也是很快樂的,ps:本想今天爬一下週董《說好不哭》歌曲的評論並使用matplotlib繪圖的,但是今天敲了不少代碼有點困了,以後再和大家分享學習下,嘎嘎!