一些Python编程小技巧

74HC138译码器的原理和使用 A0,A1,A2为3位二进制加权地址输入端口,A2A1A0顺序组成的3位2进制数对应的十进制数x控制使能端口Yx';例如当A2A1A0 = 101 时,其他门输出端全为高电平,只有Y5'为低电平。 Y0-Y7为8个输出端口,其输出电平由A0,A2,A3,E1,E2,E3决定。 阅读详情

一些Python编程小技巧

  • 1,首先命名时统一满足下划线/驼峰等命名规则,不管自己看起来还是别人开起来都会比较顺心,Python建议使用下划线

  • 2,如果代码过长,建议写成类及其他function写到其他py文件里然后import

  • 3,批量修改变量名:可以用sublime等其他编辑器打开,然后用编辑器的 ctrl + alt + F3 进行批量修改

  • 4,在线下模型调优时可以用%%号对代码进行分块,然后用 ctrl + enter 运行局部代码块,比如以下我要看不同参数值下的验证集性能,可以这样子:

 

from xgboost.sklearn import XGBClassifier  
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.cross_validation import KFold  
import pandas as pd
import numpy as np 
#读取数据,获取训练集
fila_name = 'dotData.xlsx'
excel = pd.read_excel(fila_name , sheetname=None , skiprows  = 500) 
train_set = excel['data'].sample(frac=1 , random_state = 1).values
#获得输入与输出
X = train_set[:,1:-1]
theta = 120 * np.pi / 180
X[:,-1] = ( 200 - X[:,-3]) * np.sin(theta) + X[:,-2] * np.cos(theta)
Y = train_set[:,  -1]
#%% 这里有个#%%作为代码分块
if 0 :
    clf = GradientBoostingClassifier( max_depth = 3 )
    #clf = RandomForestClassifier( max_depth = 3 )
else: 
    clf = XGBClassifier( max_depth = 3 )
score = pd.DataFrame(columns = ['accuracy'])
#下面进行交叉验证
for train_index , test_index in KFold( X.shape[0] , n_folds = 8 ):
    clf.fit( X[train_index] , Y[train_index] )
    Y_hat = clf.predict( X[test_index] )
    accuracy = np.mean( Y[test_index] == Y_hat )
    score = score.append( pd.Series(accuracy , index=['accuracy']) , \
                                    ignore_index = True )
print(score)
print("总样本量为\n",X.shape[0])
print("交叉验证中验证集的准确率为:\n",score.mean())

这样分块之后,在调参时,就只需读取一次,后面的就不用再执行了

  • 5,运用注释来解决一些想要保存但暂时不需要执行的代码

  • 6,可以运用if:0 或者 某个标记变量也可以做到注释的作用,使用标记变量还能对若干部分代码同时进行“不执行”或者"执行"的标记

  • 7,运用索引方式代替冗长的if else(代码简化)

 

if a == 0 :
    a = 25 
elif a == 1 :
    a = 0 
elif a == 2 :
    a = 15
elif a == 3 :
    a = 35 
elif a == 4 :
    a = 40

可以改写成下面这样,代码量会缩短很多

 

score_list = [25,0,15,35,40]
a =  score_list[a]
  • 8,这样子设置能让代码同时在Windows、测试服务器、正式服务器直接运行

对于在Windows下才执行的代码,比如输出中间结果值或者图片,可以这样做,生成一个全局变量进行判断

 

import platform
a = 1
IS_WINDOWS = (platform.system() == "Windows")
if IS_WINDOWS :
    print(a)

对于测试集的判断,可以运用一下代码获取运行机器的ip,然后执行测试机下才执行代码

 

import socket
b = 2  
def get_host_ip():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect(('8.8.8.8', 80))
        ip = s.getsockname()[0]
    finally:
        s.close()
    return ip
IP = get_host_ip()
if IP == "123.45.123.456" :
    print(b)
【一看就会】autoware universe项目结构解析——从一层一层直到control源码 下载安装autoware universe花了一天。下载好之后,按照网上说的跑了一下仿真是能跑的,证明下的代码没问题。然后就得看一下各模块实现的源码了。但是当我打开这些文件的时候。我勒个豆。这么多是个玩意儿。我连该启动哪个launch文件,哪个文件夹是干啥的都不知道。在我慢慢弄懂之后,我也记录这个庞大的项目的各个文件夹和里面的文件以及项目,以及自己使用时应该启动哪些launch文件。这篇文章目的就是通过找到control部分的源码,来帮助我们梳理这个庞大项目的各个文件的功能。 阅读详情

相关推荐

论文Agile Autonomy: Learning High-Speed Flight in the Wild开源代码运行记录

​ Agile Autonomy: Learning High-Speed Flight in the Wild Learning High-Speed Flight in the Wild 论文链接:https://www.science.org/doi/10.1126/scirobotics.abg5810 代码:https://github.com/uzh-rpg/agile_autonomy 国内复现:https://github.com/Howardcl/AgileAutonomyPX4

Hanamizukimr的博客 1488

pytorch初学笔记(五):torchvision中dataset的最详细使用(以CIFAR10和MNIST为例)

torchvision是pytorch下的一个包,主要由计算机视觉中的流行数据集、模型体系结构和常见图像转换等模块组成。Transforming and augmenting images:进行图片变换等。Models and pre-trained weights:提供一些预训练好的神经网络或权重参数等。Dataset :提供常用的数据集。CIFAR-10是一个更接近普适物体的彩色图像的小型数据集。一共包含10 个类别的RGB 彩色图片。

CV在读 8060

Python实战:3种高效方法将txt转csv(附pandas对比测试)

本文针对Python中将txt文件转换为csv格式的需求,深度评测了open()、csv模块和pandas三种主流方法。通过详尽的性能对比测试,从执行效率、内存占用和适用场景等维度提供选型指南,帮助开发者根据数据规模与复杂度选择最高效的转换方案。

weixin_29073241的博客 261

转: 训练集(train set) 验证集(validation set) 测试集(test set)

以下内容全部转自http://www.cnblogs.com/xfzhang/archive/2013/05/24/3096412.html 在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train set) 验证集(validation set) 测试集(test set)。 http://blog.sina.com.cn/s/blog_4d2f6c

tinamisu的专栏 3211

Ubuntu22.04 apt 安装 ROS1 ROS Noetic Ninjemys

ubuntu 22.04 apt-get 安装 ros1 ros Noetic 最新版

autolabor的博客 5万+

ubuntu20.04安装nvidia-docker(解决有 Release 文件。 N: 无法安全地用该源进行更新,所以默认禁用该源错误)

然后想都不要想,nvidia+linux安装的东西,那肯定是不能安装成功的,恶毒的nvidia。按照nvidia官网给出的安装nvidia-docker流程来。在sudo apt-get update出现报错。然后再次update,发现还是会有一些警告类似于。,直接点击网页手动下载,发现下载成功!,注意会有安装先后顺序,安装给的提示就行。最后输入命令发现安装成功。然后替换掉里面的内容。直接不管,直接上命令。

weixin_48144140的博客 1235

kd树 python实现_python机器学习案例教程——K最近邻算法的实现

K最近邻属于一种分类算法,他的解释最容易,近朱者赤,近墨者黑,我们想看一个人是什么样的,看他的朋友是什么样的就可以了。当然其他还牵着到,看哪方面和朋友比较接近(对象特征),怎样才算是跟朋友亲近,一起吃饭还是一起逛街算是亲近(距离函数),根据朋友的优秀不优秀如何评判目标任务优秀不优秀(分类算法),是否不同优秀程度的朋友和不同的接近程度要考虑一下(距离权重),看几个朋友合适(k值),能否以分数的形式表...

weixin_39641257的博客 407

实测有效!YOLOv8融合EMA注意力机制后,在无人机航拍目标检测中的性能提升对比

本文详细介绍了YOLOv8融合EMA注意力机制在无人机航拍目标检测中的性能提升效果。通过多尺度特征融合和通道-空间双重注意力机制,EMA模块显著提升了小目标检测的准确率,mAP@0.5平均提升4.2%,同时保持推理速度基本不变。文章还提供了模型定制、训练技巧和实际部署优化的全流程指南。

weixin_33704234的博客 391

Python中的shape[0]、shape[1]和shape[-1]分别是什么意思(附代码)

Python中的shape[0]、shape[1]和shape[-1]分别是什么意思(附代码)

wzk4869的博客 10万+

【Bluetooth蓝牙开发】一、开篇词 | 打造全网最详细的Bluetooth开发教程

1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总

Donge's Blog 1万+

【Frida Android】实战篇8:客户端证书认证绕过 Hook 教程

通过重写类的方法,自定义证书校验逻辑;利用配置文件,从系统层面管理证书信任策略;以及通过 OkHttp 框架提供的方法,实现证书的强绑定校验。这些内容主要围绕客户端如何验证服务端证书的合法性展开。客户端证书认证。当 APK 预置了客户端证书,并且服务端会对客户端证书进行校验时,传统的中间人攻击方式将面临新的挑战。我们将深入分析这种场景的工作原理,并详细介绍如何通过技术手段获取客户端证书、配置中间人工具,最终成功实现抓包分析。

水滴石穿 1425

numpy.shape的用法辨析shape[1:],shape[:-1]的区别

数组a的形状 a.shape为(500,500,3) ```python print(a.shape) print(a.shape[1]) print(a.shape[1:]) print(a.shape[1::]) print(a.shape[:-1]) print(a.shape[:]) print(a.shape[::]) print(a.shape[::-1]) print(a.shape[1::-1]) 输出 (500, 500, 3) 500 (500, 3) (500, 3) (500,

weixin_43050017的博客 1万+

【零基础入门unity游戏开发——3D篇】3D物理关节 —— Joint相关组件

【零基础入门unity游戏开发——3D篇】3D物理关节 —— Joint相关组件

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1198

Python编程小技巧总结

前言 经常看到关于Python编程的小技巧,但是都没有记录下来,当下次运用时还是原来的写法,这不记录一下。 Python 之禅 Python 里有个小彩蛋: 在 Python Shell 里输入 import this 这段话被称作“Python 之禅”(The Zen of Python),它列举了一些 Python 所推崇的理念,比如: 优美胜于丑陋 明确胜于隐晦 简单胜于复杂 … 可读性很重...

小小博客 410

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

18 个 Python 高效编程小技巧

初识Python语言,觉得python满足了你上学时候对编程语言的所有要求。python语言的高效编程技巧让那些曾经苦逼学了四年c或者c++的人,兴奋的不行不行的,终于解脱了。高级语言,如果做不到这样,还扯啥高级呢? 01 交换变量 >>>a=3 >>>b=6 这个情况如果要交换变量在c++中,肯定需要一个空变量。但是python不需要,只需一行,大家看清楚了 >>>a,b=b,a >>>print(a)>&gt

weixin_44603934的博客 2545

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Python小技巧全解析,用更少的代码展现编程艺术

Python中的应知小技巧为开发者提供了简洁、高效的编程方式,使得代码更易读、更灵活。通过列表推导式、字典推导式、enumeratezip拆包等方法,我们能够在少量代码中完成复杂的任务。上下文管理器的引入简化了资源的管理,而模块的Counter类和itertools模块的chain函数则为集合操作提供了便捷的工具。逻辑判断中的any和all函数能够以简单的方式处理多个元素的状态。这些小技巧不仅提高了代码的效率和可读性,同时也减少了冗余的编写。开发者能够更专注于问题的核心,而不必陷入繁琐的语法细节。

涛哥聊Python 1081

python入门教程:18 个 Python 高效编程小技巧

人生苦短,快学Python! 初识Python语言,觉得python满足了你上学时候对编程语言的所有要求。python语言的高效编程技巧让那些曾经苦逼学了四年c或者c++的人,兴奋的不行不行的,终于解脱了。高级语言,如果做不到这样,还扯啥高级呢? 01 交换变量 >>>a=3 >>>b=6 这个情况如果要交换变量在c++中,肯定需要一个空变量。但是python不需要,只需一行,大家看清楚了 >>>a,b=b,a >>>

z099164的博客 1万+

Python 编程小技巧分享

这些 Python 编程的小技巧虽然细小,但在实际开发中却能发挥很大的作用。它们能让我们写出更简洁、更高效的代码,提高我们的开发效率。希望这些分享能对你的 Python 编程之旅有所帮助!

Techlifehacks的博客 294

Python:总结编程的一些小技巧(一)

Python:总结编程的一些小技巧(一)1. 分割字符串,并且输出倒数第2个字符串。2. 遍历2个列表,同步输出列表内容3. 在字符串中插入变量4. 为每个字符串创建进度条5. 无需添加库,手动输出进度条6. 修改打印输出的结尾字符,避免直接换行7. 居中对齐(左对齐、右对齐)打印数字,汉字和英文混合的表格 1. 分割字符串,并且输出倒数第2个字符串。 a = '123|456|789|0' s...

北冥有鱼wyh的博客 370

Python编程中4个高效小技巧

在Python中大量使用Python的内置函数,能提高Python程序的速度,同时保持代码简洁易懂。

zhang120529的博客 670

python优雅编程_这些Python小技巧是否会让你的编程更优雅?

我们常说要优雅地进行Python编程,那么优雅必然需要技巧,可以让我们的Python代码更简洁、明了,让他人看起来更舒服、舒适!我们来看看这些Python小技巧是否会让你的Python编程更优雅吧。下面我挑选出的这几个技巧常常会被人们忽略,但它们在日常编程中能真正的给我们带来不少帮助。1. 字典推导(Dictionary comprehensions)和集合推导(Set comprehension...

weixin_39534100的博客 178

python编程索引_用这10个小技巧加速Python编程

编码很有趣,而Python编码更有趣,因为有很多不同的方法可以实现相同的功能。但是,大多数时候都有一些首选的实现方法,有些人将其称为Pythonic。这些Pythonic的共同特征是实现的代码简洁明了。用Python或任何编码语言进行编程不是像火箭一样的科学,而主要是关于技巧。如果有意尝试使用Pythonic编码,那么这些技术将很快成为我们工具包的一部分,并且我们会发现在项目中使用它们变得越来越自...

weixin_30186743的博客 253

python编程小技巧

记录一些常用的小技巧,主要参考来源两个:《python高级编程》的第二章语法最佳实践——类级别以下,和leetcode的官方解答。 [i for i in range(10) if i%2==0] #建列表的快速方法 [0 for _ in range(10)] zip([1,2,3], [4,5,6]) #返回(1,4), (2,5), (3,6) a, b, c = 1, 2, 3 #序列解包 def a(n: int, b: str) -> bool # 给函数参数列表时指定数据类型 .

chenzhaojie1997的博客 158

python编程中的小技巧(持续更新)

0 写在前面 tiny tricks for python programming 1 列表操作 1.1 规律列表批量赋值 基操 batch_sizes=[] for n in range(3,7): batch_sizes.append(4**n) trick batch_sizes = [4**n for n in range(3,7)] 返回 [64, 256, 1024, 40...

JohnJim的博客 380

Python入门:Python实用小技巧:提升你的编程效率

在Python编程中,掌握一些实用的小技巧可以显著提高你的代码质量和开发效率。它允许你像列表推导式一样编写简洁的代码,但返回的是一个生成器对象,而不是整个列表。掌握这些Python实用小技巧,不仅可以提升你的编程效率,还能让你的代码更加简洁、易于理解和维护。不断实践和探索新的技巧,你的Python编程技能将会越来越强。列表推导式是Python中创建列表的一种简洁方法,相比循环,它可以写出更加清晰、易读的代码。语句用于包裹文件操作或其他需要释放资源的代码块,以确保资源的正确释放,即使发生异常也是如此。

2301_78150559的博客 439

10个Python编程小技巧

1. 变量交换 a = 1 b = 2 a, b = b, a # 实现了对两个数的交换 a, b (2, 1) 2. 字符串格式化 name = 'Jack' country = 'China' age = 18 # 1. 传统的字符串拼接(很繁杂) print("Hi, I'm " + name + ". I'm from " + country + ". And I'm " + str(age) + " years old.") # 2. 百分号语法 print("Hi, I'm %s. .

qq_42662568的博客 398

2021-01-20 Python编程特殊小技巧汇集

Python编程特殊小技巧汇集 Python作为一种高级编辑语言,有很多使用的小技巧,分享一期。 1、变量值互换 a = 0b = 1a,b=b,a 2、连续赋值 a, b = 2, 1 3、自动解包赋值 a,b,c,d = [1,3,4,'domi']aa,*others = [1,3,4,'domi']>>> others[3, 4, 'domi'] 4、链式比较 a = 10if 5<= a <= 15:print('Hellow...

qingfengxd1的博客 444
下一篇: 一个简单的TensorFlow.js的猫狗识别样例
CoderX10
博客等级 码龄8年 2粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值