iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
AI & Data

從資料庫到資料分析視覺化系列 第 14

{DAY 14} NumPy 學習筆記(下)

前言

現在到了練習NumPy的最後一天,現在要開始跟資料分析的流程接軌

所以我決定從網路上的開源資料找題庫練習!

今天的練習涵蓋兩個部分:

  1. 陣列的數學運算
  2. NumPy題庫練習

陣列的數學運算

  1. 基礎運算(加、減、乘、除、次方)

    #先創一個一維陣列
    a = np.array([1,2,3,4])
    a
    '''array([1, 2, 3, 4])'''
    
    # calaulations
    print("+ :", a+2) #a+=2
    print("- :", a-2)
    print("* :", a*2)
    print("/ :", a/2)
    print("** :",a**2)
    '''
    + : [3 4 5 6]
    - : [-1  0  1  2]
    * : [2 4 6 8]
    / : [0.5 1.  1.5 2. ]
    ** : [ 1  4  9 16]
    '''
    
    
  2. 也可以使用在多個同樣形狀的矩陣

    b = np.array([1,55,1,55])
    
    print("+ :", a+b) #也等同於 a+=2
    print("- :", a-b)
    print("* :", a*b)
    print("/ :", a/b)
    
    '''
    + : [ 2 57  4 59]
    - : [  0 -53   2 -51]
    * : [  1 110   3 220]
    / : [1.         0.03636364 3.         0.07272727]
    '''
    
  3. sin, cos : np.sin( ) , np.cos( )

    print(np.sin(a))
    print(np.cos(a))
    '''
    [ 0.84147098  0.90929743  0.14112001 -0.7568025 ]
    [ 0.54030231 -0.41614684 -0.9899925  -0.65364362]
    '''
    
  4. 簡單線性代數:

    • 外積: np.matmul(a,b) 或是 a.dot(b)
    • 矩陣乘法需要符合第一個欄數等於第二個矩陣列數的條件
    a = np.ones((2,3))
    print(a)
    
    print("------")
    
    b = np.full((3,2),2)
    print(b)
    
    print("------")
    
    # matrix multiply function(.matmul(matrix1, matrix2))
    print(np.matmul(a,b)) #也可以使用print(a.dot(b))
    
    '''
    [[1. 1. 1.]
     [1. 1. 1.]]
    ------
    [[2 2]
     [2 2]
     [2 2]]
    ------
    [[6. 6.]
     [6. 6.]]
    '''
    
  5. 基礎統計:

    • 平均數: np.mean( )
    • 最小值: np.min( )
    • 最大值: np.max( )
    • 總合:np.sum( )
    #先創一個一維陣列
    stats = np.array([[1,2,3],[4,5,6]])
    print(stats)
    '''
    array([[1, 2, 3],
           [4, 5, 6]])
    '''
    
    # 平均值,最大值,最小值
    print("min:",np.min(stats))#會取得整個矩陣的最小值
    '''1 '''
    # 若是想取得每個row的最小值
    print("row basis:",np.min(stats, axis=1)) 
    '''row basis: [1 4]'''
    
    # 同樣的方法操作在最大值一次
    print("max:", np.max(stats)) #若不指定軸度,將會是整個矩陣的最大值
    print("column basis:", np.max(stats, axis=0)) #沿著column取最大值
    '''
    max: 6
    column basis: [4 5 6]
    '''
    #計算總和
    np.sum(stats,axis=1)
    '''array([ 6, 15])'''
    # sums up by column
    np.sum(stats, axis=0)
    '''array([5, 7, 9])'''
    

    沿著每個row計算:axis = 1
    沿著每個column計算:axis = 0

NumPy應用

今天的題庫是利用這個網站上的題庫

101 Numpy Exercises for Data Analysis

結語

因為之後的學習歷程上都會需要使用到NumPy

現在把基礎打好非常重要

NumPy還有很多運算功能跟語法

可以在NumPy的官網上查到

NumPy

之後要往Pandas的統計分析,Matplotlib作圖前進!


上一篇
{DAY 13} NumPy 學習筆記(中)
下一篇
{DAY 15} Pandas 學習筆記 part.1
系列文
從資料庫到資料分析視覺化30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言