我有一個陣列:
flux = np.array(folded2_lc_binned.flux.value, dtype = 'float')
這給了我以下結果:
flux = [0.99996269 1.0000602 1.00017059 1.00002182 1.00007594 0.9999696
1.00011313 1.00012934 1.00005817 0.99997538 0.99956554 0.99896783
0.99861592 0.99828523 0.99859077 0.9990297 0.9994933 0.99997085
1.00000501 0.999919 1.00013363 1.00007749 1.00005972 1.00003064
0.99999666 1.00003886 1.00002563 1.00004816]
如何計算陣列的平均值(平均值),但僅包括 0.999 和 1.001 之間的值?
uj5u.com熱心網友回復:
您可以在元素介于0.999和之間的條件下過濾元素1.001,然后使用.mean():
import numpy as np
flux = np.array([0.99996269, 1.0000602, 1.00017059, 1.00002182, 1.00007594, 0.9999696,
1.00011313, 1.00012934, 1.00005817, 0.99997538, 0.99956554, 0.99896783,
0.99861592, 0.99828523, 0.99859077, 0.9990297, 0.9994933, 0.99997085,
1.00000501, 0.999919, 1.00013363, 1.00007749, 1.00005972, 1.00003064,
0.99999666, 1.00003886, 1.00002563, 1.00004816])
print((flux[(0.999 <= flux) & (flux <= 1.001)]).mean())
uj5u.com熱心網友回復:
你能這樣理解串列嗎?
import statistics
statistics.mean([float(data) for data in flux if data and 0.999 < float(data) < 1.001])
uj5u.com熱心網友回復:
您還可以使用統計庫和行理解,如下所示:
import statistics
flux = [0.99996269, 1.0000602, 1.00017059, 1.00002182, 1.00007594, 0.9999696,
1.00011313, 1.00012934, 1.00005817, 0.99997538, 0.99956554, 0.99896783,
0.99861592, 0.99828523, 0.99859077, 0.9990297, 0.9994933, 0.99997085,
1.00000501, 0.999919, 1.00013363, 1.00007749, 1.00005972, 1.00003064,
0.99999666, 1.00003886, 1.00002563, 1.00004816]
mean_lst = statistics.mean([i for i in flux if i >= 0.999 and i <= 1.001])
print(mean_lst)
這會給你輸出:
0.9999554604166667
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/429371.html
上一篇:多個資料集和擬合線
