草庐IT

平方差

全部标签

Python 多处理性能仅随所用内核数的平方根提高

我正尝试在Python(WindowsServer2012)中实现多处理,但无法达到我期望的性能改进程度。特别是,对于一组几乎完全独立的任务,我希望通过额外的核心实现线性改进。我明白——尤其是在Windows上——打开新进程会产生开销[1],并且底层代码的许多怪癖可能会阻碍干净的趋势。但理论上,对于完全并行化的任务,趋势最终仍应接近线性[2];或者如果我正在处理部分串行任务,则可能是逻辑的[3].但是,当我在质数检查测试函数(下面的代码)上运行multiprocessing.Pool时,我得到了接近完美的平方根关系,直到N_cores=36(我的服务器上的物理内核数量)在我进入额外的逻

python - 矩阵的 numpy 平方和

我确实有一个矩阵,行中包含观察值(不同pH下的测量值),数据点作为列(随时间变化的浓度)。因此,一行包含一个pH值的不同数据点。我确实想对数据拟合ODE。所以我定义了一个成本函数,并想计算所有观测值的平方和。对该矩阵求平方和应该像这样:res=y-yhat#calculateresidualsssq=np.diag(np.dot(res.T,res))#sumoverthediagonal对吗? 最佳答案 如果您对最后一个数组求和,那将是正确的。但它也不必要地复杂(因为非对角线元素也是用np.dot计算的)更快的是:ssq=np.s

python - 如何计算 Scipy 中稀疏矩阵列的方差?

我有一个很大的scipy.sparse.csc_matrix并且想对其进行归一化。即从每个元素中减去列均值并除以列标准偏差(std)i。scipy.sparse.csc_matrix有一个.mean()但是否有计算方差或标准差的有效方法? 最佳答案 您可以使用均值自己计算方差,使用以下formula:E[X^2]-(E[X])^2E[X]代表均值。因此,要计算E[X^2],您必须对csc_matrix求平方,然后使用mean函数。要获得(E[X])^2,您只需对使用正常输入获得的mean函数的结果进行平方即可。

python - 内置计算协方差的函数

python中有没有办法在给定均值和样本数据点的情况下获得协方差矩阵例子:mean=[33.6]data=[[12][23][33][45][55]]我知道如何通过在公式中代入这些值来计算相同值。但是在python中是否有一个内置函数可以为我做这个。我知道在Matlab中有一个,但我不确定python。 最佳答案 numpy.cov()可用于计算协方差矩阵:In[1]:importnumpyasnpIn[2]:data=np.array([[1,2],[2,3],[3,3],[4,5],[5,5]])In[3]:np.cov(dat

python - 我怎样才能简单地计算 python 中时间序列的滚动/移动方差?

我有一个简单的时间序列,我正在努力估计移动窗口内的方差。更具体地说,我无法弄清楚与实现滑动窗口功能的方式有关的一些问题。例如,当使用NumPy且窗口大小=20时:defrolling_window(a,window):shape=a.shape[:-1]+(a.shape[-1]-window+1,window)strides=a.strides+(a.strides[-1],)returnnp.lib.stride_tricks.as_strided(a,shape=shape,strides=strides)rolling_window(data,20)np.var(rolling

python - 如何在不使用数学模块的情况下执行平方根?

我想在不使用数学模块的情况下求一个数的平方根,因为我需要调用该函数大约20k次并且不想在每次调用该函数时都链接到数学模块来减慢执行速度有没有更快更简单的求平方根的方法? 最佳答案 导入数学模块只发生一次,您可能不会比数学模块快多少。还有一个关于WhichisfasterinPython:x**.5ormath.sqrt(x)?的旧Stackoverflow问题.目前尚不清楚哪种方法更快。也许看看NumPy和SciPy,不一定用于sqrt,但如果您正在进行一些繁重的计算,它们可能会很方便。

python - python中复数的平方根

我在python中遇到了一些关于复数平方根的令人困惑的行为。运行这段代码:fromcmathimportsqrta=0.2b=0.2+0jprint(sqrt(a/(a-1)))print(sqrt(b/(b-1)))给出输出0.5j-0.5j类似的事情发生在print(sqrt(-1*b))print(sqrt(-b))看起来这些对陈述应该给出相同的答案? 最佳答案 两个答案(+0.5j和-0.5j)都是正确的,因为它们是complexconjugates--即实部相同,虚部符号翻转。查看code使行为清晰-结果的虚部始终与输入的

python - 如何计算 python 中列表的方差?

如果我有这样一个列表:results=[-14.82381293,-0.29423447,-13.56067979,-1.6288903,-0.31632439,0.53459687,-1.34069996,-1.61042692,-4.03220519,-0.24332097]我想用Python计算这个列表的方差,它是与均值的平方差的平均值。我该怎么做?访问列表中的元素来进行计算让我对平方差感到困惑。 最佳答案 您可以使用numpy的内置函数var:importnumpyasnpresults=[-14.82381293,-0.2

python - 用一次迭代计算均值和方差

我有一个数字迭代器,例如一个文件对象:f=open("datafile.dat")现在我要计算:mean=get_mean(f)sigma=get_sigma(f,mean)什么是最好的实现?假设文件很大,我想避免读取它两次。 最佳答案 如果你想迭代一次,你可以写你的求和函数:defmysum(l):s2=0s=0foreinl:s+=es2+=e*ereturn(s,s2)并在您的sigma函数中使用结果。编辑:现在您可以这样计算方差:(s2-(s*s)/N)/N考虑到@AdamBowen的评论,请记住,如果我们使用数学技巧并转换

python - 生成 2 的平方根的数字

我想生成二到300万位的平方根的数字。我知道Newton-Raphson但由于缺乏双整数支持,我不知道如何在C或C++中实现它。有人能指出我正确的方向吗?此外,如果有人知道如何在python中执行此操作(我是初学者),我也将不胜感激。 最佳答案 您可以尝试使用映射:a/b->(a+2b)/(a+b)从a=1,b=1开始。这收敛于sqrt(2)(实际上给出了它的连分数表示)。现在是关键点:这可以表示为矩阵乘法(类似于斐波那契)如果a_n和b_n是步骤中的第n个数字,则[12][a_nb_n]T=[a_(n+1)b_(n+1)]T[11