我正在进行一些数据分析,包括将数据集拟合到广义极值(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) 我正在将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)
感谢和问候
如何计算序列中的间隙数:
例如:
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
我正在尝试使用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) 我正在使用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数组来获得与我的拟合相关的错误.
谢谢
在下面的例子中,我尝试为四个"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)
命令不会刷新默认的"按电压分组"的格式.我在这里错过了什么?或者这是一个错误?
谢谢.
假设我想构建一个虚拟变量,如果数字在 1 到 10 之间,则该变量为真,我可以这样做:
df['numdum'] = df['number'].isin(range(1,11))
Run Code Online (Sandbox Code Playgroud)
有没有办法在连续间隔内做到这一点?因此,如果数字在一个范围内,则创建一个为真的虚拟变量,允许非整数。
我有一个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) 我在pyspark中有以下代码,生成的表向我显示了列的不同值及其计数。我想让另一列显示每一行代表总计数的百分比。我怎么做?
difrgns = (df1
.groupBy("column_name")
.count()
.sort(desc("count"))
.show())
Run Code Online (Sandbox Code Playgroud)
提前致谢!
这是我的数据框
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 ×9
pandas ×5
matplotlib ×2
numpy ×2
scipy ×2
apache-spark ×1
boxplot ×1
count ×1
fill ×1
plot ×1
pyspark ×1
sequence ×1
statistics ×1
subplot ×1