小编CT *_*Zhu的帖子

来自广义极值(GEV)最大似然拟合数据的奇怪pdf

我正在进行一些数据分析,包括将数据集拟合到广义极值(GEV)分布,但我得到了一些奇怪的结果.这是我正在做的事情:

from scipy.stats import genextreme as gev
import numpy
data = [1.47, 0.02, 0.3, 0.01, 0.01, 0.02, 0.02, 0.12, 0.38, 0.02, 0.15, 0.01, 0.3, 0.24, 0.01, 0.05, 0.01, 0.0, 0.06, 0.01, 0.01, 0.0, 0.05, 0.0, 0.09, 0.03, 0.22, 0.0, 0.1, 0.0]
x = numpy.linspace(0, 2, 20)
pdf = gev.pdf(x, *gev.fit(data))
print(pdf)
Run Code Online (Sandbox Code Playgroud)

并输出:

array([  5.64759709e+05,   2.41090345e+00,   1.16591714e+00,
         7.60085002e-01,   5.60415578e-01,   4.42145248e-01,
         3.64144425e-01,   3.08947114e-01,   2.67889183e-01,
         2.36190826e-01,   2.11002185e-01,   1.90520108e-01,
         1.73548832e-01,   1.59264573e-01,   1.47081601e-01,
         1.36572220e-01,   1.27416958e-01,   1.19372442e-01,
         1.12250072e-01,   1.05901466e-01,   1.00208313e-01,
         9.50751375e-02,   9.04240603e-02,   8.61909342e-02,
         8.23224528e-02,   7.87739599e-02,   7.55077677e-02, …
Run Code Online (Sandbox Code Playgroud)

python statistics scipy

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

如何在numpy savetxt中格式化,使零仅保存为"0"

我正在将numpy稀疏数组(已删除)保存到csv中.结果是我有一个3GB的csv.问题是95%的细胞是0.0000.我用过fmt='%5.4f'.如何格式化和保存,使零保存为0,非零浮点数以'%5.4f'格式保存?如果我能做到这一点,我相信我可以将3GB降至300MB.

我在用

np.savetxt('foo.csv', arrayDense, fmt='%5.4f', delimiter = ',')
Run Code Online (Sandbox Code Playgroud)

感谢和问候

python numpy

5
推荐指数
2
解决办法
6107
查看次数

计算python中的间隙数

如何计算序列中的间隙数:

例如:

s1='G _ A A T T C A G T T A'
s2='G G _ A _ T C _ G _ _ A'
s3='G A A T T C A G T _ T _'
Run Code Online (Sandbox Code Playgroud)

她的数量'_'8

我尝试以下操作:

def count():
    gap=0
    for i in range(0, len(s1), 3):
        for x,y,z in zip(s1,s2,s3):
            if (x=='_') or (y=='_')or (z=='_') :
                gap=gap+1
        return gap
Run Code Online (Sandbox Code Playgroud)

它给出 6 而不是 8

python count sequence

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

在pandas plot创建时跳过gcf().autofmt_xdate()

我正在尝试使用pandas数据框绘制多个时间序列.数据帧包含100多个寄存器.

从熊猫的文档中我已经读过,当执行pandas.df.plot()时,这也是用gcf().autofmt_xdate()执行的.我想放置我的自定义日期时间格式但是当我尝试自定义日期格式时,重叠超过了pandas plot默认给出的日期.¿有没有办法在剧情创作中跳过gcf().autofmt_xdate()?¿我怎样才能为熊猫提供自定义日期时间格式?

这是生成的图.

在此输入图像描述

这是python代码.

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
from pandas import Series
import pickle
datos = pickle.load(open("datos_reporte.pickle", "r"))
reload(plt)
series_o = []
series_p_h = []
series_p_d = []
series_names = []
for cod_estacion in datos.keys():
    x = [d[0] for d in datos[cod_estacion]['historial_semanal']]
    y = [d[1] for d in datos[cod_estacion]['historial_semanal']]
    s = Series(y, x)
    series_o.append(s.groupby(level=0).first())

df1 = pd.concat(series_o, join='outer', axis=1)
interval  = int(len(df1) / 12)
df1.columns = series_names
ax = plt.figure(figsize=(7,5), dpi=100).add_subplot(111) …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib pandas

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

从scipy.optimize.curve_fit获取与参数估计值相关的标准错误

我正在使用scipy.optimize.curve_fit曲线来拟合我的一些数据.在大多数情况下,曲线看起来非常合适.出于某种原因,当我将其打印出来时,pcov = inf.

我真正需要的是计算与我拟合的参数相关的误差,并且即使它确实给出了协方差矩阵,也不确定如何做到这一点.

适合的模型是:

def intensity(x,R_out,R_in,K_in,K_out,a,b,c):
    K_in,K_out = abs(0.0),abs(K_out)
    if x<=R_in:
        return 2*R_out*(K_out*np.sqrt(1-x**2/R_out**2)-
                (K_out-0.0)*np.sqrt(R_in**2/R_out**2-x**2/R_out**2)) + c
    elif x>=R_in and x<=R_out:
        return K_out*2*R_out*np.sqrt(1-x**2/R_out**2) + c
    elif x>R_out:
        return c

intensity_vec = np.vectorize(intensity)



def intensity_vec_self(x,R_out,R_in,K_in,K_out,a,b,c):
    y = np.zeros(x.shape)
    for i in range(len(y)):
        y[i]=intensity_vec(x[i],R_out,R_in,K_in,K_out,a,b,c)
    return y
Run Code Online (Sandbox Code Playgroud)

并且有400个数据点,如果您认为它有用,我可以把它放在这里.

总而言之,我无法curve_fit打印出来pcov并需要帮助以找出原因,以及我是否可以这样做.

另外,如果是一个快速解释,我想知道如何使用pcov数组来获得与我的拟合相关的错误.

谢谢

python mathematical-optimization curve-fitting scipy

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

如何使用pandas包为python创建的子图清除默认的boxplot的suptitle

在下面的例子中,我尝试为四个"Power"级别制作"Emission"与"Voltage"的箱线图,每个功率级别占据一个子图.

fig = plt.figure(figsize=(16,9))
i = 0
for Power in [10, 20, 40, 60]:
    i = i+1
    ax = fig.add_subplot(2,2,i)
    subdf = df[df.Power==Power]
    bp = subdf.boxplot(column='Emission', by='Voltage', ax=ax)
fig.suptitle('My Own Title')
Run Code Online (Sandbox Code Playgroud)

问题是,

fig.suptitle('My Own Title')
Run Code Online (Sandbox Code Playgroud)

命令不会刷新默认的"按电压分组"的格式.我在这里错过了什么?或者这是一个错误?

谢谢.

python matplotlib boxplot pandas subplot

4
推荐指数
2
解决办法
2157
查看次数

用于连续间隔的 Pandas isin() 函数

假设我想构建一个虚拟变量,如果数字在 1 到 10 之间,则该变量为真,我可以这样做:

df['numdum'] = df['number'].isin(range(1,11))
Run Code Online (Sandbox Code Playgroud)

有没有办法在连续间隔内做到这一点?因此,如果数字在一个范围内,则创建一个为真的虚拟变量,允许非整数。

python pandas

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

使用线性插值填充时间戳 NaT

我有一个df像这样的数据帧:

                                  t        pos
frame
0     2015-11-21 14:46:32.843517000   0.000000
1                               NaT   0.000000
2                               NaT   0.000000
3                               NaT   0.000000
4                               NaT   0.000000
5                               NaT   0.000000
6                               NaT   0.000000
7                               NaT   0.000000
8                               NaT   0.000000
9                               NaT   0.000000
10                              NaT   0.000000
11                              NaT   0.000000
12                              NaT   0.000000
13                              NaT   0.000000
14                              NaT   0.000000
15                              NaT   0.000000
16                              NaT   0.000000
17                              NaT   0.000000
18                              NaT   0.000000
19                              NaT   0.000000
...                             ...        ...
304   2015-11-21 14:46:54.255383750  12.951807
305   2015-11-21 14:46:54.312271250   5.421687
306   2015-11-21 …
Run Code Online (Sandbox Code Playgroud)

python numpy fill pandas

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

使用pyspark计算groupBy总数的百分比

我在pyspark中有以下代码,生成的表向我显示了列的不同值及其计数。我想让另一列显示每一行代表总计数的百分比。我怎么做?

difrgns = (df1
           .groupBy("column_name")
           .count()
           .sort(desc("count"))
           .show())
Run Code Online (Sandbox Code Playgroud)

提前致谢!

apache-spark pyspark

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

列上的数据框重新索引

这是我的数据框

      ticker        date   dateValue
549      RCG  2015-01-02    10
692      RCG  2015-01-05    8
Run Code Online (Sandbox Code Playgroud)

我想让这个有重新索引

foo =  foo.reindex(index=['2015-01-01', '2015-01-02'])

ticker        date   dateValue
RCG  2015-01-01    N/A
RCG  2015-01-02    10
Run Code Online (Sandbox Code Playgroud)

相反,我得到

       ticker date   dateValue
2015-01-01    NaN  NaN          NaN
2015-01-02    NaN  NaN          NaN
Run Code Online (Sandbox Code Playgroud)

python pandas

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