1. 程式人生 > 實用技巧 >pandas學習筆記(一)

pandas學習筆記(一)

pandas學習筆記(一) ——預備知識

在pandas的學習過程中,寫下此類學習筆記來記錄自己的學習歷程以及錯誤。希望各位pandas大佬可以指出我的問題。

1.numpy板塊:

reshape():

reshape(Dimension,row,list):

reshape函式是指對np陣列進行變換,通常reshape中的引數分別為:Dimension(維度)、row(行)、list(列),通常情況下,Dimension的值為1。

import numpy as np
a = np.linspace(1,24,24).reshape(6,4)
a
Out[41]: 
array([[ 1.,  2.,  3.,  4.],
       [ 5.,  6.,  7.,  8.],
       [ 9., 10., 11., 12.],
       [13., 14., 15., 16.],
       [17., 18., 19., 20.],
       [21., 22., 23., 24.]])

reshape(row,-1):

當list=-1時,即自動計算list,list=(陣列或者矩陣裡面所有元素的個數)/row

a.reshape(12,-1)
Out[42]: 
array([[ 1.,  2.],
       [ 3.,  4.],
       [ 5.,  6.],
       [ 7.,  8.],
       [ 9., 10.],
       [11., 12.],
       [13., 14.],
       [15., 16.],
       [17., 18.],
       [19., 20.],
       [21., 22.],
       [23., 24.]])

reshape(-1,list):

同理,row=-1時,即自動計算row,row=(陣列或者矩陣裡面所有元素的個數)/list

a.reshape(-1,12)
Out[43]: 
array([[ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10., 11., 12.],
       [13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24.]])

reshape(-1):

將陣列或者矩陣以單行的形式輸出

a.reshape(-1)
Out[44]: 
array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10., 11., 12., 13.,
       14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24.])

nonzero():

nonzero 返回非零數的索引

二維陣列:
a = np.array([-2,-5,0,1,3,-1])
np.nonzero(a)
Out[5]: (array([0, 1, 3, 4, 5], dtype=int64),)

a = np.array([[-2,-5,0,1,3,-1],[-7,-6,-4,5,4,8]])
a
Out[10]: 
array([[-2, -5,  0,  1,  3, -1],
       [-7, -6, -4,  5,  4,  8]])
np.nonzero(a)
Out[11]: 
(array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1], dtype=int64),
 array([0, 1, 3, 4, 5, 0, 1, 2, 3, 4, 5], dtype=int64)) # nonzero所返回的值即非零數的行列值

三維陣列;
a = np.array([[[-2,-5,0,1,3,-1],[-7,-6,-4,5,4,8]],[[4,-6,-8,5,2,-1],[-11,-45,2,8,5,6]]])
np.nonzero(a)
Out[15]: 
(array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1], dtype=int64),
 array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
        1], dtype=int64),
 array([0, 1, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4,
        5], dtype=int64))                          # 三維陣列nonzero所返回的值,是陣列中非零元素所在的維度、行、列的值