3段极简代码带你入门Python科学计算库SciPy

大数据DT

提供大数据、AI等领域干货学习资源的「宝藏号」,跟50万技术人共同成长,一起玩转大数据、Python、数据分析、数据科学、人工智能!还会有各种好玩又奇葩的数据解读,边学习边吃瓜!
510篇原创内容
公众号

导读:SciPy是基于NumPy的,提供了更多的科学计算功能,比如线性代数、优化、积分、插值、信号处理等。

作者:赵志强 刘志伟
来源:大数据DT(ID:hzdashuju)
01 文件读写
目前在国内Matlab仍然非常流行,Matlab使用的数据格式通常是.mat文件。对此,Scipy.io包提供了可以导入导出.mat文件的接口,这样,Python和Matlab的协同工作就变得非常容易了。示例代码如下所示:
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([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
02 线性代数运算
在SciPy中,线性代数运算使用的是scipy.linalg。
scipy.linalg.det()可用于计算矩阵的行列式,示例代码如下:
from scipy import linalg
m=np.array([[1,2],[3,4]])
linalg.det(m)
Out:
-2.0
03 优化和拟合
求解最大值最小值之类的问题即为优化问题,在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中可以看到,对应的最小值的横坐标大约是-2。
我们可以用暴力穷举法来计算最小值,代码如下:
grid=(-10,10,0.1)x_min=optimize.brute(f,(grid,))x_minOut:array([-1.42754883])
▲图3-1
当然,当数据量较大的时候,穷举法速度会很慢。为了提高效率,scipy.optimize也提供了诸如模拟退火等优化算法,这里不再多讲。
关于作者:赵志强,金融量化与建模专家,目前在金融科技公司负责金融大数据产品工作,专注于研究Al在金融领域的落地应用。曾在由诺奖得主Robert Engle领导的上海纽约大学波动研究所研究全球金融风险,并和上交所、中金所合作完成多项科研项目。曾在摩根士丹利华鑫基金、明汯投资负责量化投资研究工作,内容包括股票多因子、期货CTA和高频交易等。
刘志伟,在中国银联云闪付事业部从事数据分析、数据挖掘等工作。对自然语言处理、文本分类、实体识别、关系抽取、传统机器学习,以及大数据技术栈均有实践经验。目前正在探索相关技术在金融场景内的落地应用,包括自动知识图谱、大规模文本信息抽取结构化、异常识别等领域,关注人工智能行业前沿技术发展。
本文摘编自《Python量化投资:技术、模型与策略》,
本文摘编自《Python量化投资:技术、模型与策略》,经出版方授权发布。
(0)

相关推荐

  • Python常用科学计算库有哪些?

    大家都知道,编程语言有很多,其中包括Python.Java.PHP等.对比其他编程语言来讲,Python具有非常独特的优势,它拥有很多第三方库,可应用于各大领域,比如人工智能.科学计算.那么Pytho ...

  • 30段极简Python代码:这些小技巧你都Get了么

    数学算法俱乐部 日期 : 2021年06月14日 正文共 :3367字 来源 : 机器之心 学 Python 怎样才最快?当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务 ...

  • 30个Python常用极简代码,拿走就能用

    作者丨Fatos Morina 来源丨Python 技术 导读 本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是有没想到的用法. 学 ...

  • 董志强:极简“因果推断”经济学入门

    作者简介 董志强,华南师范大学经济行为科学重点实验室教授. 本文原载于<经济学家茶座>2020年第1期(总第87辑). 全文5123字,阅读约需11分钟 极简"因果推断" ...

  • 30个Python常用极简代码,拿走就用

    学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...

  • 卡农-极简好听-带指法版双手简谱

    卡农,百听不厌的一首经典钢琴曲.只要是学钢琴的几乎都有弹奏这首曲子,所以小编今天特意制作了卡农带指法版简谱以及五线谱,而且这个版本非常简单,感兴趣的朋友可以免费下载. <卡农>绝对是令人惊 ...

  • 多个探针对应同一个基因取最大表达量探针极简代码

    这个需求实在是太常见了,很多时候我们下载的表达矩阵,都是基因的探针ID作为行名来标记,如下: 这个变量是 dat,一个表达矩阵, 所以需要对探针进行注释,并且筛选. 首先看看注释的结果: 很明显可以看 ...

  • 一张图看懂各大绘画派别,印象派出乎意料,极简主义带感,很形象

    在艺术的长河中,绘画具有很多的艺术派别,而他们通常都带有悠久的历史韵味,同时还包含地理位置的意味.对于一般人来说,很少系统接触这些,所以对于各流派的特点也不是很清晰,因此今天我们就通过一幅画,来形象直 ...

  • 迎銮记——1900年,华州知州与慈禧、皇上的一段极简对话!

    邮箱:3125136050@qq.com 李嘉绩,四川成都人,光绪二十五年(1899).二十八年(1902),两任华州知州.今华州太平峪龙王庙遗址旁石崖上(距峪口约二三里)有其求神祈雨留下的石刻,上方 ...

  • 9个Python极简代码,拿走即用

    今天小编给大家整理了9个基础代码,新入门的Python程序员可以试着敲一下.