【发布时间】:2020-03-31 04:05:41
【问题描述】:
我有一个包含两列的数据集,第 1 列是从 1 秒到 9 秒的时间,第 2 列是特定秒内事件的概率,其值为 30、69、56、70、90, 59、87、10、20。
我试图获得一个时间间隔内的平均概率(在这种情况下为 2 秒后),例如 2 到 3 秒、2 到 4 秒、2 到 5 秒、....2 到 9 之间的概率秒。
我尝试了以下方法,其中定义了一个函数t_inc,其增量为 1 大于 2。但是,我收到以下错误消息(代码中的P_slice_avg_1):
操作数不能与形状 (9,) (7,) 一起广播
因为我的 t_inc 的形状是 7。
当我尝试以手动方式(代码中的P_slice_avg_2)执行此操作时,它可以工作,但如果我想在大量时间间隔内执行此操作,则不可行。
任何关于如何概括它的帮助都会非常有帮助。
import numpy as np
data=np.loadtxt('C:/Users/Hrihaan/Desktop/Sample.txt')
t=data[:,0] # t goes from 1 to 9
P=data[:,1] # probability of an event in a specific second
i= np.arange(1, 8 , 1)
t_inc= 2 + i
P_slice_avg_1= np.mean(P[(t>=2) & (t<=t_inc)]) # I thought this would give me the averages between 2 and values of t_inc
P_slice_avg_2= np.mean(P[(t>=2) & (t<=3)]), np.mean(P[(t>=2) & (t<=4)]), np.mean(P[(t>=2) & (t<=5)]), np.mean(P[(t>=2) & (t<=6)]), np.mean(P[(t>=2) & (t<=7)]), np.mean(P[(t>=2) & (t<=8)]), np.mean(P[(t>=2) & (t<=9)])
【问题讨论】:
标签: python numpy average multiple-columns