python编程技巧——list计算

1. 两个列表间运算

在Python中,如果你有两个同长度的列表,并且你想要对它们进行元素级别的相减(即,第一个列表的每个元素减去第二个列表的对应元素),你可以使用列表推导式或者zip函数来实现。

以下是两种方法的示例:

  • 使用列表推导式
list1 = [1, 2, 3, 4, 5]  
list2 = [2, 3, 4, 5, 6]  # 使用列表推导式进行元素级别的相减  
list_difference = [a - b for a, b in zip(list1, list2)]  
print(list_difference)  # 输出: [-1, -1, -1, -1, -1]
  • 使用zip函数和map函数
    虽然使用map函数在这种情况下可能不是最直观的方法,但它仍然是一个有效的选择,特别是当你想要对列表进行更复杂的操作时。
list1 = [1, 2, 3, 4, 5]  
list2 = [2, 3, 4, 5, 6]  # 使用zip和map进行元素级别的相减  
list_difference = list(map(lambda a, b: a - b, zip(list1, list2)))  
print(list_difference)  # 输出: [-1, -1, -1, -1, -1]

在这两个例子中,zip函数用于将两个列表的元素打包成一个个的元组,然后列表推导式或map函数用于对这些元组中的元素进行相减操作。最终的结果是一个新的列表,包含了相减后的结果。

2. 最大值

在Python中,如果你想要找到列表中的最大值,你可以使用内置的max()函数。这个函数会返回可迭代对象(如列表)中的最大值。下面是一个例子:

# 创建一个列表  
numbers = [1, 3, 5, 7, 9]  # 使用max()函数找到列表中的最大值  
max_value = max(numbers)  # 打印最大值  
print(max_value)  # 输出: 9
如果列表是空的,调用max()函数会抛出一个ValueError。为了避免这种情况,你可以在使用max()之前检查列表是否为空:python
# 创建一个可能为空的列表  
numbers = []  # 检查列表是否为空  
if numbers:  max_value = max(numbers)  print(max_value)  
else:  print("列表是空的,无法找到最大值。")

在上面的例子中,如果numbers列表为空,程序会打印出"列表是空的,无法找到最大值。",而不会尝试在空列表上调用max()函数。

3. 取列表部分值的合计、均值

如果你有一个包含10个数据的列表,并且你想取前8个数据(无论是直接获取这些数据,还是进行某种操作如求和、平均值等),你可以通过索引来实现。

以下是一些示例:

直接获取前8个数据:

data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
first_eight = data[:8]  
print(first_eight)  # 输出: [1, 2, 3, 4, 5, 6, 7, 8]

对前8个数据进行求和:

data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
sum_of_first_eight = sum(data[:8])  
print(sum_of_first_eight)  # 输出: 36

对前8个数据求平均值:

data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
average_of_first_eight = sum(data[:8]) / 8  
print(average_of_first_eight)  # 输出: 4.5

注意,在Python中,列表的索引是从0开始的,所以data[:8]实际上是从索引0(包含)到索引8(不包含)的元素,即前8个元素。

4. 绝对误差与方差

为了计算一个列表数据的平均绝对误差(Mean Absolute Error, MAE)和方差(Variance),我们首先需要明确这些统计量的定义。但需要注意的是,平均绝对误差通常用于回归问题,并且需要有一个参考的“真实值”列表来与预测值列表进行比较。然而,在这里我们只有一个数值列表,所以我们可以假设这个列表就是观测值,并计算它们与某个假设的“中心值”(如均值)的绝对误差。

  • 平均绝对误差(MAE):
    我们将假设列表的均值作为“真实值”的近似,然后计算每个观测值与均值的差的绝对值,最后取这些绝对误差的平均值。
  • 方差(Variance):
    方差是每个观测值与均值之差的平方的平均值。
    下面是Python代码来计算这些统计量:
import numpy as np  x = [23, 12, 5, 34, 5, 6, 10]  
x = np.array(x)  # 转换为NumPy数组以便进行数学运算  # 计算均值  
mean_x = np.mean(x)  # 计算平均绝对误差(MAE)  
mae = np.mean(np.abs(x - mean_x))  # 计算方差  
variance = np.var(x)  print(f"Mean Absolute Error (MAE): {mae}")  
print(f"Variance: {variance}")

运行这段代码将给出列表x的平均绝对误差和方差。注意,这里我们使用了NumPy库来简化计算过程。如果你没有安装NumPy,可以使用Python的标准库来计算这些值,但代码会更冗长一些。

5. 使用 clear() 方法

clear() 方法会移除列表中的所有元素,使其变为空列表。

my_list = [1, 2, 3, 4, 5]  
my_list.clear()  
print(my_list)  # 输出: []

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/46964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos(或openEuler系统)安装clickhouse集群

192.168.9.60、192.168.9.63、192.168.9.64三台centos(或openEuler系统)安装clickhouse集群(数据分散,不是1主2备) 一、安装clickhouse集群 以下操作在每台机器上一摸一样的执行: 关闭防火墙&#xff1a…

WebGL-编译报错,如何定位sendfile报错位置

1)WebGL-编译报错,如何定位sendfile报错位置 2)设置DepthBufferBits和设置DepthStencilFormat的区别 3)Unity打包exe后,游戏内拉不起Steam的内购 4)使用了Play Asset Delivery提交版本被Google报错 这是第3…

【Qt+opencv】计时函数与图像变换

文章目录 前言计算时间函数图像变换旋转镜像缩放 总结 前言 在图像处理和计算机视觉的应用中,我们经常需要对图像进行各种变换,如旋转、缩放、剪切等。同时,为了评估算法的性能,我们也需要对代码的执行时间进行精确的测量。OpenC…

前端组件化技术实践:Vue自定义顶部导航栏组件的探索

摘要 随着前端技术的飞速发展,组件化开发已成为提高开发效率、降低维护成本的关键手段。本文将以Vue自定义顶部导航栏组件为例,深入探讨前端组件化开发的实践过程、优势以及面临的挑战,旨在为广大前端开发者提供有价值的参考和启示。 一、引…

R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-曲线图-热力图-雷达图

R语言画散点图-饼图-折线图-柱状图-箱线图-直方图-曲线图-热力图-雷达图 散点图示例解析效果 饼图示例解析效果 折线图示例解析效果 柱状图示例解析效果 箱线图示例解析效果 直方图示例解析效果 曲线图使用 curve() 函数示例效果 使用 plot() 函数示例效果 使用 ggplot2 包绘制…

super和this的作用与区别(java)

目录 (一)super关键字 (1)super的作用 (2)super的用法 2.1:super调用父类成员变量 2.2super调用父类成员方法 (3)super()的使用 (4)super注意…

NAS新品“翻车”后,绿联科技要上市了

在消费电子市场回暖的东风中,又一消费电子知名企业登陆A股。 近日,深圳市绿联科技股份有限公司(下称“绿联科技”)开启申购,将在创业板上市。本次上市,绿联科技的发行价为21.21元/股,发行数量为…

【.NET全栈】ASP.NET开发Web应用——ADO.NET数据访问技术

文章目录 前言一、ADO.NET基础1、ADO.NET架构2、ADO.NET数据提供者 二、连接数据库1、SqlConnection数据库连接类2、使用SqlConnectionStringBuilder连接字符串3、关闭和释放连接4、在web.config配置文件中保存连接字符串5、连接池技术 三、与数据库交互1、使用SqlCommand操作数…

Node.js 路由

Node.js 路由 介绍 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript 编写服务器端代码。Node.js 的一个核心特性是其事件驱动和非阻塞 I/O 模型,这使得它非常适合处理高并发和 I/O 密集型的应用程序。在 Node.js 中,路由是指确定应…

揭秘!Shopee/Lazada自养号测评高效法,三大策略助力商家快速出单

在东南亚电商的版图中,Lazada凭借其庞大的市场覆盖网络及卓越的服务品质,成功吸引了无数商家与消费者的瞩目。然而,对于渴望在Lazada平台上大展宏图的商家而言,出单的难易程度成为了一个值得深入探讨的议题。 一、Lazada出单的挑战…

GNU/Linux - U-BOOT的GPIO command

在嵌入式Linux开发中,先运行的是u-boot,然后再加载Linux内核。 启动时如果设置了u-boot等待时间,在等待时间内,按任意键就会进入u-boot命令行环境。 在u-boot命令行环境下,可以使用gpio命令来操作GPIO。 Synopsis gpi…

MPNN消息传递神经网络

MPNN(Message Passing Neural Networks,消息传递神经网络)是一种图神经网络(GNN)的架构,用于处理图结构数据。MPNNs 是一种通用的框架,许多其他图神经网络(如GCN, GAT)都…

泰迪科技2024年高校(本科/职业院校)大数据实验室建设及大数据实训平台整体解决方案

高校大数据应用人才培养目标 大数据专业是面向信息技术行业,培养德智体美劳全面发展的大数据领域的高素质管理型专门人才,毕业生具备扎实的管理学、经济学、自然科学、技术应用、人文社科的基本理论, 系统深入的大数据管理专业知识和实践能力&#xff0c…

JavaEE (1)

web开发概述 所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行 交互. 流程图如下 Web服务器是指驻留于因特网上某种类型计算机的程序. 可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览; 它是一个容器&…

FPGA-计数器

前言 之前一直说整理点FPGA控制器应用的内容,今天就从计数器这个在时序逻辑中比较重要的内容开始总结一下,主要通过还是通过让一个LED闪烁这个简单例子来理解。 寄存器 了解计数器之前先来认识一下寄存器。寄存器是时序逻辑设计的基础。时序逻辑能够避…

TFHE库,fftw和googletest库安装

点个关注吧!本文主要关注于TFHE的安装与常见的问题 1.TFHE的git链接: https://github.com/tfhe/tfhe git clone --recurse-submodules --branchmaster https://github.com/tfhe/tfhe.git 2.安装 mkdir build cd build cmake ../src -DENABLE_TESTSon -D…

概率论中的卷积公式

目录 简介 卷积公式的推导与应用 实际例子 卷积公式在多维情况下的推导和应用是什么? 多维卷积的推导 多维卷积的应用 延伸拓展 如何使用卷积公式解决实际问题,例如信号处理中的噪声消除? 在统计学中,卷积公式是如何应用于…

细说MCU用DMA控制ADC采样和串口传送的实现方法

目录 一、建立工程 1.相同的配置 2.配置ADC 3.配置DMA 二、代码修改 1.定义存储ADC采样结果的数组 2.启动ADC与定时器 3.编写主程序代码 4.重定义回调函数 5.查看结果 三、修改DMA模式 1. 修改DMA模式为Circular 2.查看结果 采用DMA(Direct Memory Access&#xf…

WebRTC QOS方法十三.1(TimestampExtrapolator接收时间预估)

一、背景介绍 虽然我们可通过时间戳的差值和采样率计算出发送端视频帧的发送节奏,但是由于网络延迟、抖动、丢包,仅知道视频发送端的发送节奏是明显不够的。我们还需要评估出视频接收端的视频帧的接收节奏,然后进行适当平滑,保证…

卷积神经网络【CNN】--池化层的原理详细解读

池化层(Pooling Layer)是卷积神经网络(CNN)中的一个关键组件,主要用于减少特征图(feature maps)的维度,同时保留重要的特征信息。 一、池化层的含义 池化层在卷积神经网络中扮演着降…