Python numpy庫 —— linspace()的用法

我們可以將 linspace() 函數理解成是用來創建一個等差數列的,或者說將一個區間的數值等分成N份,下面舉個栗子:

將 1~10 等分成10份,那麼最後的結果是怎樣的呢?
1,2,3,4,5,6,7,8,9,10
最後創建出來的就是這樣一個等差序列;

我們還是首先看一下函數原型是怎樣的:


英文好的自己看,不好的隨着我一起看下去;我們發現這個函數一共有7個參數,除了前兩個,其他的都有初始值了,那麼他們分別代表什麼意思呢?

  • start:數據的起始點,即區間的最小值
  • stop:數據的結束點,即區間的最大值
  • num:數據量,可以理解成分割了多少份
  • endpoint:說明是否包含結束點
  • retstep:是否給出數據間隔,即如果是True,那麼不僅會創建數據序列,在最後還會給出數據間隔是多少
  • dtype:指定序列的數據類型
  • axis:其實這個參數我也沒搞懂是什麼意思,只知道值爲0或者-1,對於結果貌似沒有什麼變化,這個後面再補充

接下來我們就通過程序來感受一下:

  1. 最重要兩個參數:start 和 stop
    import numpy as np
    
    print(np.linspace(1,10))
    
    # 輸出結果:
    # [ 1.          1.18367347  1.36734694  1.55102041  1.73469388  1.91836735
    #   2.10204082  2.28571429  2.46938776  2.65306122  2.83673469  3.02040816
    #   3.20408163  3.3877551   3.57142857  3.75510204  3.93877551  4.12244898
    #   4.30612245  4.48979592  4.67346939  4.85714286  5.04081633  5.2244898
    #   5.40816327  5.59183673  5.7755102   5.95918367  6.14285714  6.32653061
    #   6.51020408  6.69387755  6.87755102  7.06122449  7.24489796  7.42857143
    #   7.6122449   7.79591837  7.97959184  8.16326531  8.34693878  8.53061224
    #   8.71428571  8.89795918  9.08163265  9.26530612  9.44897959  9.63265306
    #   9.81632653 10.        ]
    我們發現頭尾是我們設置的1和10,但是一共分了50份,這是因爲這個函數 num參數的默認值爲50;
  2. 設定份數
    import numpy as np
    
    print(np.linspace(1,10,10))
    print(np.linspace(1,10,num=10))
    
    # 輸出結果:
    # [ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]

    我們可以通過 num參數設置數據量,如果是按照參數順序寫下來,可以直接寫參數值,如果跳了參數,那麼就需要註明屬性了,這點就不贅述了;

  3. 設置是否包含結束點
    import numpy as np
    
    print(np.linspace(1,10,10,endpoint=False))
    
    # 輸出結果:
    # [1.  1.9 2.8 3.7 4.6 5.5 6.4 7.3 8.2 9.1]
    我們發現將endpoint設置爲False,stop就不會被包含進去,那麼也可以知道,默認情況下,stop是會被包含進去的;
  4. 我想要知道序列的間隔是多少怎麼辦?
    import numpy as np
    
    a = np.linspace(1,10,10,retstep=True)
    
    print(a)
    
    # 輸出結果:
    # (array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.]), 1.0)
    我們可以看見最後的結果是一個元組,元組的第一個值即爲創建的序列,第二個值爲序列之間的間隔;
  5. 設置生成序列的數據類型
    import numpy as np
    
    print(np.linspace(1,10,10,dtype='int'))
    print(np.linspace(1,10,10,dtype='str'))
    
    # 輸出結果:
    # [ 1  2  3  4  5  6  7  8  9 10]
    # ['1.0' '2.0' '3.0' '4.0' '5.0' '6.0' '7.0' '8.0' '9.0' '10.0']

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章