电竞比分网-中国电竞赛事及体育赛事平台

分享

3段極簡代碼帶你入門Python科學計算庫SciPy

 佬總圖書管 2021-03-18
大數(shù)據(jù)DT
提供大數(shù)據(jù)、AI等領(lǐng)域干貨學習資源的「寶藏號」,跟50萬技術(shù)人共同成長,一起玩轉(zhuǎn)大數(shù)據(jù)、Python、數(shù)據(jù)分析、數(shù)據(jù)科學、人工智能!還會有各種好玩又奇葩的數(shù)據(jù)解讀,邊學習邊吃瓜!
510篇原創(chuàng)內(nèi)容
公眾號

導(dǎo)讀:SciPy是基于NumPy的,提供了更多的科學計算功能,比如線性代數(shù)、優(yōu)化、積分、插值、信號處理等。


作者:趙志強 劉志偉
來源:大數(shù)據(jù)DT(ID:hzdashuju)


圖片


01 文件讀寫

目前在國內(nèi)Matlab仍然非常流行,Matlab使用的數(shù)據(jù)格式通常是.mat文件。對此,Scipy.io包提供了可以導(dǎo)入導(dǎo)出.mat文件的接口,這樣,Python和Matlab的協(xié)同工作就變得非常容易了。示例代碼如下所示:

from scipy import io as spio
import numpy as np
a=np.arange(10)
spio.savemat('a.mat',{'a':a})
data = spio.loadmat('a.mat', struct_as_record=True)
data['a']

Out:

array([[0123456789]])


02 線性代數(shù)運算

在SciPy中,線性代數(shù)運算使用的是scipy.linalg。

scipy.linalg.det()可用于計算矩陣的行列式,示例代碼如下:

from scipy import linalg
m=np.array([[1,2],[3,4]])
linalg.det(m)

Out:

-2.0


03 優(yōu)化和擬合

求解最大值最小值之類的問題即為優(yōu)化問題,在SciPy中,scipy.optimization提供了最小值、曲線擬合等算法。示例代碼如下:

import numpy as np
from scipy import optimize
import matplotlib.pyplot as plt

def f(x):
    return x**2+20*np.sin(x)

x=np.arange(-10,10,0.1)

plt.plot(x,f(x))

由圖3-1中可以看到,對應(yīng)的最小值的橫坐標大約是-2。

我們可以用暴力窮舉法來計算最小值,代碼如下:

grid=(-10,10,0.1)
x_min=optimize.brute(f,(grid,))
x_min
Out:
array([-1.42754883])

圖片

▲圖3-1

當然,當數(shù)據(jù)量較大的時候,窮舉法速度會很慢。為了提高效率,scipy.optimize也提供了諸如模擬退火等優(yōu)化算法,這里不再多講。

關(guān)于作者:趙志強,金融量化與建模專家,目前在金融科技公司負責金融大數(shù)據(jù)產(chǎn)品工作,專注于研究Al在金融領(lǐng)域的落地應(yīng)用。曾在由諾獎得主Robert Engle領(lǐng)導(dǎo)的上海紐約大學波動研究所研究全球金融風險,并和上交所、中金所合作完成多項科研項目。曾在摩根士丹利華鑫基金、明汯投資負責量化投資研究工作,內(nèi)容包括股票多因子、期貨CTA和高頻交易等。
劉志偉,在中國銀聯(lián)云閃付事業(yè)部從事數(shù)據(jù)分析、數(shù)據(jù)挖掘等工作。對自然語言處理、文本分類、實體識別、關(guān)系抽取、傳統(tǒng)機器學習,以及大數(shù)據(jù)技術(shù)棧均有實踐經(jīng)驗。目前正在探索相關(guān)技術(shù)在金融場景內(nèi)的落地應(yīng)用,包括自動知識圖譜、大規(guī)模文本信息抽取結(jié)構(gòu)化、異常識別等領(lǐng)域,關(guān)注人工智能行業(yè)前沿技術(shù)發(fā)展。

本文摘編自Python量化投資:技術(shù)、模型與策略》,
本文摘編自Python量化投資:技術(shù)、模型與策略》,經(jīng)出版方授權(quán)發(fā)布。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多