python - 如何计算通量差异并计算python中的出现次数
问题描述
我的数据由时间和流量组成(4116 行 × 2 列)。我想通过计算两个连续点之间的通量差异并计算出现次数来找到亮度变化的分布。我首先尝试对数据(mydata_nor)进行标准化,然后取差值(d),但我无法计算出现的次数。另外,我不确定这段代码是否正确。我正在尝试在“通量差异”和“计数”之间绘制图表以下几行显示 mydata 的样子:
352.3771366 20458.564
352.3975695 20458.295
352.4384352 20454.715
352.4588681 20468.422
352.4793010 20460.531
352.4997339 20465.701
352.5201667 20463.215
352.5405995 20463.814
352.5610325 20463.986
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
mydata = pd.read_csv('kplr31.txt')
mydata_nor = (mydata - mydata.mean()) / (mydata.max() - mydata.min())
d = np.diff(mydata_nor)
解决方案
我认为您d
错过了一个参数axis=0
,否则它不会沿着右轴执行。
d = np.diff(mydata_nor,axis=0)
但是要以不同的方式进行操作,您可以执行以下操作:
mydata_nor = (mydata - mydata.mean()) / (mydata.max() - mydata.min())
# create the column diff_flux with diff()
mydata_nor['diff_flux'] = mydata_nor['flux'].diff()
现在得到一个带有 diff_flux 和出现次数的 DF:
df_output = (mydata_nor.groupby('diff_flux') #groupby diff_flux value
.count() # count the occurence for each diff_flux
.rename(columns = {'time':'count'}) #rename time by count
.drop('flux',1) #drop the column flux as it's not necessary
.reset_index()) # reset_index to have diff_flux as a column
根据您获得的数据,它给出:
diff_flux count
0 -0.575691 1
1 -0.261180 1
2 -0.181367 1
3 -0.019625 1
4 0.012548 1
5 0.043700 1
6 0.377180 1
7 1.000000 1
推荐阅读
- c# - 查询需要在 .ThenInclude 之后使用 .Where 子句进行过滤
- python - fast.ai:在训练过程中防止输出
- r - 将 R Studio 窗口移动到新显示器时,Rstudio 版本(版本 1.3.1073)“Giant goldenrod”无法正确显示
- firebase - 将来自 Firestore 的文档存储在列表中
- c# - 如何对 C# DateTime 相关函数时区独立进行单元测试?
- sql - PostgreSQL 从 3 个多对多表中选择
- java - gRPC-java服务器在负载下处理请求和发送响应的延迟
- python - 关闭连接会导致存储过程更改回滚
- javascript - 如何在 html 中显示从烧瓶返回的字符串?
- spring - Spring HATEOAS,如何在不淹没数据库的情况下处理到实体的转换链接