1. 程式人生 > >Numpy攻略:Numpy常用函式之斐波那契數列

Numpy攻略:Numpy常用函式之斐波那契數列

NumPy 是一個 Python 的第三方庫,代表 “Numeric Python”,主要用於數學/科學計算。
它是一個由多維陣列物件和用於處理陣列的例程集合組成的庫。

1.sqrt函式:計算平方根
示例:黃金分割比的計算
程式碼段如下:

import numpy
#使用sqrt函式計算5的平方根
phi=(1+numpy.sqrt(5))/2
print(phi)

執行結果:
1.618033988749895
2.log函式:計算以e為底的對數
示例:確定小於四百萬項的最大索引值
程式碼段如下:

 import numpy
    #使用sqrt函式計算5的平方根
    phi=(1+numpy.sqrt(5))/2
    #使用log函式,把對數的底轉換一下
    n=numpy.log(4*10**6*numpy.sqrt(5)+0.5)/numpy.log(phi)
    print(n)

執行結果:33.26294803586825
3.arange函式:生成一個指定範圍的陣列

#建立一個從1到n的陣列
n=numpy.arange(1,n)

4.計算斐波那契數列

fib=(phi**n-(-1/phi)**n)/numpy.sqrt(5)
print("First 9 Fibonacci Numbers",fib[:9])

執行結果:First 9 Fibonacci Numbers [ 1. 1. 2. 3. 5. 8. 13. 21. 34.]
5.sum函式:求和

故完整的程式碼如下:
import numpy
#使用sqrt函式計算5的平方根
phi=(1+numpy.sqrt(5))/2
#使用log函式,把對數的底轉換一下
n=numpy.log(4*10**6*numpy.sqrt(5)+0.5)/numpy.log(phi)
print(n)
#建立一個從1到n的陣列
n=numpy.arange(1,n)
print(n)
#計算斐波那契數列
fib=(phi**n-(-1/phi)**n)/numpy.sqrt(5)
print("First 9 Fibonacci Numbers",fib[:9])
#轉化為整數:astype把資料轉化為指定的型別
fib=fib.astype(int)
print("Integers",fib)
#選出取值為偶數的項
eventerms=fib[fib%2==0]
print(eventerms)
#對選出的項求和
print(eventerms.sum())