如何在python中计算多个读数的平均值?

如何在python中计算多个读数的平均值?,python,numpy,Python,Numpy,传感器每秒钟产生一个读数,持续五秒钟。我试图使用函数np.mean计算五个传感器读数的平均值(即sensor1_t1到sensor1_t5),但它不起作用 你能帮我一下吗 谢谢 sensor1_t1 = BridgeValue(0) * 274.0 - 2.1 sleep(1) sensor1_t2 = BridgeValue(0) * 274.0 - 2.1 sleep(1) sensor1_t3 = BridgeValue(0) * 274.0 - 2.1 sleep(1) sensor1_

传感器每秒钟产生一个读数,持续五秒钟。我试图使用函数
np.mean
计算五个传感器读数的平均值(即
sensor1_t1
sensor1_t5
),但它不起作用

你能帮我一下吗

谢谢

sensor1_t1 = BridgeValue(0) * 274.0 - 2.1
sleep(1)
sensor1_t2 = BridgeValue(0) * 274.0 - 2.1
sleep(1)
sensor1_t3 = BridgeValue(0) * 274.0 - 2.1
sleep(1)
sensor1_t4 = BridgeValue(0) * 274.0 - 2.1
sleep(1)
sensor1_t5 = BridgeValue(0) * 274.0 - 2.1
sleep(1)

# my code - not working
#avg_sensor1 = np.mean(sensor1_t1, sensor1_t2, sensor1_t3, sensor1_t4, sensor1_t5)

您需要将类似数组的对象传递给的
a
参数。尝试:

当您需要将它们作为一个类似数组的对象传递时,您当前正在传递5个参数

换句话说,
np.mean
的语法是:

numpy.mean(a,axis=None,dtype=None,out=None,

当前调用函数的方式是传递5个位置参数。这些参数被解释为单独的参数:

  • sensor1\u t1
    被传递到
    a
  • 传感器1\u t2
    被传递到轴
  • sensor1\u t3
    被传递到
    dtype
……等等


请注意,我建议的语法传递一个
列表
,这是被认为是“类似数组”的结构之一。如果您感兴趣,请详细说明。

您需要将类似数组的对象传递给的
a
参数。请尝试:

当您需要将它们作为一个类似数组的对象传递时,您当前正在传递5个参数

换句话说,
np.mean
的语法是:

numpy.mean(a,axis=None,dtype=None,out=None,

当前调用函数的方式是传递5个位置参数。这些参数被解释为单独的参数:

  • sensor1\u t1
    被传递到
    a
  • 传感器1\u t2
    被传递到轴
  • sensor1\u t3
    被传递到
    dtype
……等等


请注意,我建议的语法传递一个
列表
,这是被认为是“类似数组”的结构之一。如果您感兴趣,请详细介绍。

,因为numpy主要用于数组(尤其是
numpy.ndarray
numpy.mean
需要一个数组作为它的第一个参数。但是你不需要创建
ndarray
你可以简单地更改
np.mean(sensor1_t1,sensor1_t2,sensor1_t3,sensor1_t4,sensor1_t5)
np.mean([sensor1_t1,sensor1_t2,sensor1_t3,sensor1_t4,sensor1_t5])
和numpy将处理其余的部分。

因为numpy主要用于数组(尤其是
numpy.ndarray
numpy.mean
期望数组作为第一个参数。但是您不需要创建
ndarray
只需更改
np.mean(传感器1\u t1、传感器1\u t2、传感器1\u t3、传感器1\u t4、传感器1\t5)
np。平均值([sensor1_t1、sensor1_t2、sensor1_t3、sensor1_t4、sensor1_t5])
和numpy将处理其余部分。

这将更容易使用numpy阵列完成。类似于:

import numpy as np

N = 5
sensor1 = np.zeros((N,), dtype=float)

for i in range(N):
    sensor1[i] = BridgeValue(0) * 274.0 - 2.1
    sleep(1)

average = np.mean(sensor1)

在整个过程中,使用Numpy阵列可以更轻松地完成此操作。例如:

import numpy as np

N = 5
sensor1 = np.zeros((N,), dtype=float)

for i in range(N):
    sensor1[i] = BridgeValue(0) * 274.0 - 2.1
    sleep(1)

average = np.mean(sensor1)

根据我从其他人那里学到的知识,我正在考虑使用np.empty。你能解释一下为什么要使用np.zero吗?我假设(N,)正在向数组添加新的条目?!Thx。
np.zero((N,)
创建一个长度为
N
的零数组(从技术上讲是1d数组)然后修改循环中的每个值。因此,当
i=1
时,将
桥接值(0)*274.0-2.1
分配给
传感器[1]
(数组中的第二个条目,因为它是0索引的)。因此,您可以使用
np.empty
np.zero
;它们都起着占位符的作用。根据我从其他人那里学到的知识,我正在考虑使用np.empty。您能解释一下为什么要使用np.zero吗?我假设(N,)在数组中添加新条目?!Thx。
np.zero((N,)
创建一个长度为
N
的零数组(技术上是1d数组),然后修改循环中的每个值。因此,当
i=1
时,您将
桥接值(0)*274.0-2.1
分配给
传感器[1]
(数组中的第二个条目,因为它是0索引的)。因此,您可以使用
np.empty
np.zero
;它们都可以用作占位符。