Python 如果有一个特殊的条件需要考虑,如何计算平均值?
我想从矩阵Python 如果有一个特殊的条件需要考虑,如何计算平均值?,python,if-statement,mean,Python,If Statement,Mean,我想从矩阵TBM[x,y]计算平均值,其中x和y分别是行和列。我想计算并非所有行的平均值(见下文为什么不是全部),以获得TBM[s,y],其中s不等于1,但它可以是s
TBM[x,y]
计算平均值,其中x
和y
分别是行和列。我想计算并非所有行的平均值(见下文为什么不是全部),以获得TBM[s,y]
,其中s
不等于1
,但它可以是s
。不是所有的行,因为有一个条件:时间;如果t0
我们计算第一个平均值。接下来,我们有t1
,我们计算第二个平均值,依此类推
因此,我可以在时间t
内,用条件if
计算2个嵌套的,并将平均值
放入一个新的矩阵中。但是怎么做呢
编辑:
for t in time:
for i in range(kk, len(TBM)-1):
if (TBM[i,1] > t[j] and TBM[i,1] < t[j+1]):
sums = sums + TBM[i,2]
kk = kk + 1
means[t] = sums / kk
对于时间t:
对于范围内的i(kk,len(TBM)-1):
如果(TBM[i,1]>t[j]和TBM[i,1]
但这似乎并不是我想要的。我找到了一个解决方案:
count = []
k = 0
for j in range(len(t)-1):
for i in range(k, len(TBM)-1):
if (TBM[i] > t[j] and TBM[i] < t[j+1]):
count.append(i)
k = k + 1
break
count.append(len(TBM)-1)
count = np.asarray(count)
data_mean = np.asarray([[0.0 for j in range(len(count)-1)] for i in range(np.size(TBM[0]))]).T
data_sum = np.asarray([[0.0 for j in range(len(count)-1)] for i in range(np.size(TBM[0]))]).T
for k in range (len(count)-1):
for j in range(np.size(TBM[0])):
for i in range (count[k], count[k+1]):
data_sum[k,j] = data_sum[k,j] + data_tbm1[i,j]
data_mean[k,j] = data_sum[k,j] / (count[k+1]-count[k])
count=[]
k=0
对于范围内的j(透镜(t)-1):
对于范围内的i(k,len(TBM)-1):
如果(TBM[i]>t[j]和TBM[i]
有点不清楚您想要什么:您似乎提到了两个条件。请重新表述,并提供一个例子。