小编Bre*_*ung的帖子

使用scipy进行矩阵求幂:expm,expm2和expm3

矩阵取幂可以使用scipy.linalg库中的函数在python中执行,即expm, expm2, expm3.expm利用Pade近似; expm2使用特征值分解方法,expm3并使用默认数量为20的泰勒级数.

在SciPy 0.13.0发行说明中声明:

不推荐使用矩阵指数函数scipy.linalg.expm2和scipy.linalg.expm3.所有用户都应该使用数字更强大的scipy.linalg.expm函数.

虽然expm2expm3自发布版本SciPy的0.13.0已被弃用,我发现,在许多情况下,这些实现比快expm.由此,出现了一些问题:

在什么情况下expm2和expm3会导致数值不稳定?

在什么情况下(例如稀疏矩阵,对称,......)每个算法更快/更精确?

python scipy sparse-matrix

9
推荐指数
1
解决办法
1037
查看次数

使用 Julia Plots 填充垂直曲线

我正在寻找类似的功能,ribbon可以让我使用 Julia Plots 填充垂直曲线之间的区域x=x(y)。现在,使用ribbonallowed 填充两条曲线之间的区域y=y(x),如下例所示:

using Plots
y(x) = broadcast(sin, x)
x = range(0.0, 3.14, length=30)
plot(x,y(x), ribbon=(zero(x).+0.05, zero(x).+0.1))
savefig("ribbon_example.png")
Run Code Online (Sandbox Code Playgroud)

示例_丝带

我正在寻找一种在水平方向上获得类似丝带的方法。我认为类似的关键字参数选项尚不存在(请参阅此问题),但我想知道是否存在解决此问题的其他选项。对于其他示例,这里是我需要的 Python matplotlib 实现

julia

5
推荐指数
1
解决办法
1036
查看次数

使用 numpy.fft VS 计算信号 PSD 的前置因素。scipy.signal.welch

St信号的功率谱密度u可以计算为信号的 FFT 与其u_fft复共轭 的乘积u_fft_c。在 Python 中,这可以写成:

import numpy as np

u = # Some numpy array containing signal
u_fft = np.fft.rfft(u-np.nanmean(u))

St = np.multiply(u_fft, np.conj(u_fft))
Run Code Online (Sandbox Code Playgroud)

然而,Numpy 中的 FFT 定义需要将结果与因子 相乘1/N,其中N=u.size,以便在 u 与其 FFT 之间实现能量上一致的变换。这导致使用 numpy 的 fft 修正 PSD 的定义:

St = np.multiply(u_fft, np.conj(u_fft))
St = np.divide(St, u.size)
Run Code Online (Sandbox Code Playgroud)

另一方面,Scipy 的函数signal.welch直接根据输入计算 PSD u

from spicy.signal import welch

freqs_st, St_welch = welch(u-np.nanmean(u), 
     return_onesided=True, nperseg=seg_size, axis=0)
Run Code Online (Sandbox Code Playgroud)

生成的 PSD是通过在大小为 的 …

python numpy scipy spectral-density

4
推荐指数
1
解决办法
5544
查看次数

Julia 中的字典元素操作

我想向字典的所有值广播一个操作。对于数组,我知道我可以使用以下方法广播元素操作:

julia> b1 = [1, 2, 3]
julia> b1./2
3-element Array{Float64,1}:
 0.5
 1.0
 1.5
Run Code Online (Sandbox Code Playgroud)

将相同操作广播到字典的所有值的有效方法是什么?说,为了字典

a1 = Dict("A"=>1, "B"=>2)
Run Code Online (Sandbox Code Playgroud)

dictionary julia elementwise-operations

3
推荐指数
1
解决办法
438
查看次数

从 python 中的列表生成枚举类

假设我想创建以下枚举类:

from enum import Enum, unique

@unique
class Indication(Enum):
    Fruit1 = 'apple'
    Fruit2 = 'orange'
    Fruit3 = 'banana'
Run Code Online (Sandbox Code Playgroud)

我想从 python 列表创建它,即

Listoffruits = [('Fruit1', 'apple'),  ('Fruit2', 'orange'), ('Fruit3',  'banana')]
Run Code Online (Sandbox Code Playgroud)

如何有效地做到这一点?

python-3.x

3
推荐指数
1
解决办法
8719
查看次数

使用corner.corner隐藏角图中的样本点

在马尔可夫链蒙特卡罗的背景下,我想使用 绘制参数估计问题的二维后验分布corner.corner。我现在的图看起来像这样:

后验pdf示例

在等值线图中,等值线由概率分位数定义,因此等值线之外的概率较低。

我想知道是否可以删除概率轮廓之外的背景样本(即灰点)。

python emcee

2
推荐指数
1
解决办法
1636
查看次数