我們可以將 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,對於結果貌似沒有什麼變化,這個後面再補充
接下來我們就通過程序來感受一下:
- 最重要兩個參數: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. ]
- 設定份數
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參數設置數據量,如果是按照參數順序寫下來,可以直接寫參數值,如果跳了參數,那麼就需要註明屬性了,這點就不贅述了;
- 設置是否包含結束點
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]
- 我想要知道序列的間隔是多少怎麼辦?
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)
- 設置生成序列的數據類型
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']