PYTHON数组求和

要做一段数组的平均值,请各位帮看一下。

img

老是搞不出来,,自己不会,帮看一下啊。

img

需要将值取出来才好求均值.
添加一行如下代码

# 将数据从tuple中取出,并转换成浮点数
values = [float(i[0]) for i in values]

# 接下去就一样了
a = np.array(values)
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7535013
  • 你也可以参考下这篇文章:Python自学网站,视频都很短,不经意间就看了快一百个了,一个有情怀的网站。
  • 你还可以看下python参考手册中的 python- 自定义扩展类型:教程- 基础
  • 除此之外, 这篇博客: python--串口通信中的 全部程序如下,多出了好多函数,文件是从现有工程中摘出来的,捡有用的看吧。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    # 安装:pip3 install pyserial   //python3
    import serial
    import serial.tools.list_ports
    import time
    import threading
    
    
    com_rx_buf = ''				# 接收缓冲区
    com_tx_buf = ''				# 发送缓冲区
    COMM = serial.Serial()		# 定义串口对象
    port_list: list				# 可用串口列表
    port_select: list			# 选择好的串口
    
    
    # 无串口返回0,
    # 返回可用的串口列表
    def get_com_list():
        global port_list
        # a = serial.tools.list_ports.comports()
        # print(a)
        # port_list = list(serial.tools.list_ports.comports())
        port_list = serial.tools.list_ports.comports()
        return port_list
    
    
    def set_com_port(n=0):
        global port_list
        global port_select
        port_select = port_list[n]
        return port_select.device
    
    
    # 打开串口
    def serial_open(n=0):
        global COMM
        serial_port = set_com_port(n)
        COMM = serial.Serial(serial_port, 115200, timeout=0.01)
        if COMM.isOpen():
            print(serial_port, "open success")
            return 0
        else:
            print("open failed")
            return 255
    
    
    # 关闭串口
    def serial_close():
        global COMM
        COMM.close()
        print(COMM.name + "closed.")
    
    
    def set_com_rx_buf(buf=''):
        global com_rx_buf
        com_rx_buf = buf
    
    
    def set_com_tx_buf(buf=''):
        global com_tx_buf
        com_tx_buf = buf
    
    
    def get_com_rx_buf():
        global com_rx_buf
        return com_rx_buf
    
    
    def get_com_tx_buf():
        global com_tx_buf
        return com_tx_buf
    
    
    def thread_com_receive():
        while True:
            try:
                rx_buf = ''
                rx_buf = COMM.read()  # 转化为整型数字
                if rx_buf != b'':
                    time.sleep(0.01)
                    rx_buf = rx_buf + COMM.read_all()
                    print("串口收到消息:", rx_buf)
                time.sleep(0.01)
            except:
                pass
        pass
    
    
    # def serial_encode(addr=0, command=0, param1=0, param0=0):
    #     buf = [addr, command, param1, param0, 0, 0, 0, 0]
    #     print(buf)
    #     return buf
    
    
    def serial_send_command(addr=0, command=0, param1=0, param0=0, data3=0, data2=0, data1=0, data0=0):
        buf = [addr, command, param1, param0, data3, data2, data1, data0]
        COMM.write(buf)
        pass
    
    
    def serial_init():
        buf = "AT+CG\r\n"
        COMM.write(buf)
        time.sleep(0.05)
        buf = COMM.read_all()
        if buf != "OK\r\n":
            return 254  # 进入调试模式失败
    
        buf = "AT+CAN_MODE=0\r\n"
        COMM.write(buf)
        time.sleep(0.05)
        buf = COMM.read_all()
        if buf != "OK\r\n":
            return 253          # 进入正常模式失败,模块处于1状态,即环回模式中
    
        buf = "AT+CAN_BAUD=500000\r\n"
        COMM.write(buf)
        time.sleep(0.05)
        buf = COMM.read_all()
        if buf != "OK\r\n":
            return 253          # 波特率设置失败
    
        buf = "AT+FRAMEFORMAT=1,0,\r\n"
        COMM.write(buf)
        time.sleep(0.05)
        buf = COMM.read_all()
        if buf != "OK\r\n":
            return 253          # 波特率设置失败
    
        buf = "AT+ET\r\n"       # 进入透传模式
        COMM.write(buf)
        time.sleep(0.05)
        buf = COMM.read_all()
        if buf != "OK\r\n":
            return 255  # 不是CAN模块
    
    
    if __name__ == '__main__':
        get_com_list()
        len = port_list.__len__()
        device = port_list[0].device
        print(len, device)
        serial_open()
        thread1 = threading.Thread(target=thread_com_receive)
        thread1.start()
     
        buf = [33, 2, 0x55, 1, 4]
        COMM.write(buf)
    
        # serial_close()
    
  • 您还可以看一下 石澳老师的python爬虫入门课程中的 爬,反爬,反反爬-爬虫入门程序!小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    要计算一个Python数组的平均值,可以使用以下步骤:

    1. 导入numpy库,以便进行数组操作。如果没有安装numpy,可以使用以下命令进行安装:
    pip install numpy
    
    1. 创建一个Python数组。可以使用np.array()函数将Python列表转换为数组。
    import numpy as np
    
    # 创建一个数组
    arr = np.array([1, 2, 3, 4, 5])
    
    1. 使用np.mean()函数计算数组的平均值。
    mean = np.mean(arr)
    print("数组的平均值为:", mean)
    

    完整的代码示例:

    import numpy as np
    
    # 创建一个数组
    arr = np.array([1, 2, 3, 4, 5])
    
    # 计算数组的平均值
    mean = np.mean(arr)
    
    print("数组的平均值为:", mean)
    

    这样就能计算出Python数组的平均值了。

    请注意,为了使用这个示例,您需要先确保已安装了numpy库。 如果您的系统中没有numpy库,可以使用“pip install numpy”命令进行安装。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^