SciPy基础入门(二)

SciPy线性代数-linalg

Numpy和sciPy都提供了线性代数函数库linalg,SciPy更为全面:解线性方程组、最小二乘解、特征值和特征向量、奇异值分解...等。

解线性方程组

解线性方程组

import numpy as np

from scipy import linalg

import timeit

m,n = 50,50

A = np.random.rand(m,n)

B = np.random.rand(m,n)

def my_func1():

       X1 = linalg.solve(A,B)

def my_func2():

       X2 = np.dot(linalg.inv(A),B)

t1 = timeit.Timer(stmt=my_func1).timeit(number=100)

t2 = timeit.Timer(stmt=my_func2).timeit(number=100)

print(t1,t2)

特征值和特征向量

n x n的矩阵A可以看作n维空间中的线性变换。

如果x为n维空间中的一个向量,那么A与x的矩阵乘积是对x进行线性变换之后的向量。

如果x是线性变换的特征向量,那么经过这个线性变换后,得到新向量仍与原来的x保持在同乙方向上,长度可能发生改变。

特征向量的长度在该线性变换下缩放的比例称为其特征值。

#特征值和特征向量-举例

A = np.array([[1,-0.3],[-0.1,0.9]])

evalues,evectors = linalg.eig(A)

print(evalues)#特征值

print(evectors)#特征向量

奇异值分解-SVD

Linalg库中的svd函数:对矩阵进行奇异值分解。其调用形式为:U,s,V = scd(M)

#奇异值分解--举例

A = np.array([[1,-0.3],[-0.1,0.9]])

U,s,V = linalg.svd(A)

print(U)

print(s)

print(V)

SciPy的stats模块

Stats模块包含了多种概率分布的随机变量

连续随机变量是rv_continuous派生类的对象

离散随机变量是rv_discrete派生类的对象

连续概率分布、离散概率分布、核密度估计、二项分布、泊松部分、伽马分布、学生t-分布与t检验、卡方分布和卡方检验

连续概率分布
连续随机变量对象方法

以正态分布为例,获取默认正态分布随机变量的期望值和方差:

stats.norm.stats()

Norm可以像函数一样使用,通过loc和scale参数可以指定随机变量的偏移和缩放参数。

X.stats.norm(loc=1.0,scale=2.0)

X.stats()

调用随机变量x的rvs()方法,得到包含一万次随机取样值的数组x:

x = X.rvs(size = 10000)#对随机变量取1000个值

import numpy as np

np.mean(x)

np.var(x)

使用mean()、var()计算此数组的均差和方差,其结果符合随机变量x的特性

离散概率分布

当分布函数的值域为离散时称之为离散概率分布

例如:投掷有六个面的骰子时,获得1到6的整数,因此所得到的概率分布为离散的

stats模块中离散分布随机变量都从rv_discrete类继承,也可以直接用rv_discrete类自定义离散概率分布。投掷骰子举例:

1.数组x保存骰子的所有可能值

2.数组p保存每个值出现的概率

3.创建表示这个骰子的随机变量dice

from scipy import stats

x = range(1,7)

p = (1.0/6,1.0/6,1.0/6,1.0/6,1.0/6,1.0/6)

dice = stats.rv_discrete(values=(x,p))

dice.rvs(size=20) #投掷此骰子20次,获得符合概率p的随机数

中心极限定律:大量相互独立的随机变量,其均值的分布以正态分布为极限。如何验证?

由于每一次投掷骰子可以看作一个独立的随机事件,投掷骰子50次的平均值可以看作“大量相互独立的随机变量”,其平均值的分布应该十分接近正态分布。

import numpy as np

samples = dice.rvs(size=(20000,50))

samples_mean = np.mean(samples,axis=1)

print(samples)

print(samples_mean)

核密度估计-举例

1.前面例子中每个点是离散的,因此平均值也是离散的(直方图来显示)

2.更平滑的显示样本的概率,进行kde.gaussian_kde()进行核密度估计

3.核密度估计与拟合的正态分布十分相似

核密度估计-举例
核密度估计-举例

SciPy数值积分-integtate

integtate模块提供了几种数值积分算法,包括对常微分方程组(ODE)的数值积分。

计算球体体积、解常微分方程

球的体积求解
球的体积求解-面积求解
球的体积求解-面积求解

球的体积求解

多重定积分可以通过多次调用quad()实现。integrage提供了:二重定积分 dblquad()、三重定积分 tplquad()

球的体积求解
球的体积求解
球的体积求解
球的体积求解
球的体积求解

解常微分方程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容