还在撸Python3.7,Python3.9新鲜出炉,菜鸟哥带你尝鲜解读

Python 3.9的到来到底是意味着什么 本文主要介绍Python3.9的一些新特性,如:更快速的进程释放,性能的提升,简便的新字符串函数,字典并集运算符以及更兼容稳定的内部API,详细如下: 1、字典并集和可迭代更新 Python 3.9 dict类。如果有两个字典a和b,则现在可以使用这些运算符进行合并和更新。 我们有合并运算符|: 使用Iterables进行字典更新 | =运算符的另一个很棒的性能是能够使用可迭代对象(如列表或生成器)用新的键值对来更新字典: a = {'a': 'one', 'b': 'two'} b = ((i, i**2) for i in range(3)) a |= b print(a) {'a': 立即下载


是不是感觉python3.7刚刚使用,3.8还没捂热乎,怎么3.9这么快就来了! 其实版本迭代速度快,说明这门编程语言的活力强,对于我们使用者来说是件好事,而且谁也没说必须使用最新版本,我到现在仍然在用python3.6。 但是呢,新版本出来了一定要体验一下,看看都有哪些改动和优化,说不定哪个新特性就能解决你手里的大问题。

1

新的特性

1).import异常

我们在进行模块的相对引用时,可能会遇到这个错误提示:ValueError: Attempted relative import beyond toplevel package。简单来说这个问题是由于引用的模块超出了顶层目录的层级结构所导致的,这个问题不理解也没关系,因为跟python3.9的特性更改关系不大。

我们只要知道,python3.9中对这类错误的raise类型进行了调整,当遇到这类错误的时候,会提示ImportError而不再是ValueError,PR如图所示:

这个改动的最大好处就是当遇到这类问题时,系统会明确告诉你是由import模块引发的。

2).__file__路径

我们知道,在python中可以使用__file__、sys.argv[0]、sys.path[0]等方法获取当前脚本的所在路径,只不过在命令行模式下使用前两个命令获取到的都是相对路径,只有第三个命令可以获取脚本的绝对路径。 我们用以前版本的的python运行下面这段代码:
import sys
print(__file__)
print(sys.argv[0])
print(sys.path[0])

得到结果如下:

而如果使用python3.9来运行结果就不一样了(下图),他对__file__和sys.argv[0]都做了调整,使其返回值全部为绝对路径。

3).replace修复

replace是字符串处理中的常用函数,他的原型其实是这样的:

str.replace(old, new[, max])
其中max是可选参数,意思是替换不超过max次。 但是在之前的python版本中,如果对空值进行这种形式的替换会有一点问题,例如下面这段代码,它的输出结果仍然为空。
s = ''
s = s.replace('', 'python39', 1)
print(s)
而在python3.9中对这一问题进行了修正,除非max赋值为0,否则会进行正常的替换操作。 这一改动对bytes和bytearray对象同样适用。


2

模块改动

Python3.9并没有为我们带来新的内置模块,但是对一些模块进行了修改,我们挑选几个使用相对较多的进行说明。

1).ast

ast这个概念大家可能比较陌生,一般来说我们很少有机会用到它,我们只需要知道ast对象是类似一种树形的语法结构。 来看下面这段代码,他的作用就是把print(3+5)转换成ast对象并打印。
import ast
func_def = 'print(3+5)'
r_node = ast.parse(func_def)
print(ast.dump(r_node))

先使用之前的版本来运行,看看下图中的输出结果。我们不用看内容,单从输出格式而言,这串代码既没有换行也没有缩进,看起来很费劲。

而python3.9则对这一问题进行了解决,它在dump()方法中新增了一个参数 indent,代表的是首行缩进的字符长度,我们对上述代码进行少许修改:
import ast
func_def = 'print(3+5)'
r_node = ast.parse(func_def)
print(ast.dump(r_node, indent=2))

然后用python3.9来运行,结果如下,这次看起来是不是舒服多了。

2).asyncio

在python3.9中,新增了一个名为shutdown_default_executor()的协程,它的作用就是等待ThreadPoolExecutor中的所有线程执行完毕,为默认线程安排关闭时间。
需要注意的是,调用此方法后,如果在默认线程中调用loop.run_in_executor()方法,将会引发RuntimeError。

此外,如果我们使用了asyncio.run()类的方法,那么shutdown_default_executor()将会自动调度。也就是说,对于asyncio的一般使用者来说,python3.9的改变并不会带来什么实质性影响。

3).threading

我们知道,在python的子解释器中是不支持守护线程的,在之前的版本中,如果一个线程是从子解释器中调用的守护线程,那么将会导致python程序的崩溃。
在python3.9中,遇到这种情况会引发RuntimeError,这相当于对整个程序加了一层保护。

4).pprint

Python3.9对pprint的修改主要体现在增加了对types.SimpleNamespace的支持。types.SimpleNamespace严格来说是一个简单的对象子类,为了便于理解我们可以简单地把他看作一个数据结构。
下面我就来看看在之前的版本和python3.9中,对types.SimpleNamespace的数据进行pprint结果有什么不同,先来看一段代码:
import pprint
from types import SimpleNamespace
K = [str(i) for i in range(10)]
L = [str(i)*20 for i in range(10)]
D = dict(zip(K, L))
sn = SimpleNamespace(**D)
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(sn)
其中变量sn返回的是一个命名空间,其结构类似于一个dict字典,来看用之前版本的python运行脚本的输出结果:

再来看python3.9中使用pprint的输出结果(下图),这下知道区别在哪了吧。

此外,python3.9中还对其他几个模块进行了修改,例如venv、os等,不过有些改动只针对特定操作系统(比如linux),这里不再一一罗列了。

3

其他优化

除了上面提到的一些改动,python3.9还对一些比较底层的东西进行了优化,这部分内容我想大多数python使用者都涉及不到,大家了解下就好。

1).Build和C API

  • 提供Py_EnterRecursiveCall()和Py_LeaveRecursiveCall()作为limited API的常规函数。 从stable API中删除_Py_CheckRecursionLimit。
  • 向C API添加一个新的公共函数PyObject_CallNoArgs(),这个函数可以调用不含参数的可调用Python对象。
  • 全局变量PyStructSequence_UnnamedField在python3.9中修改为常量字符串。
  • 从Py_LIMITED_API.pyfpe.h中剔除PyFPE_START_PROTECT()和PyFPE_END_PROTECT()函数。
  • 删除PyMethod_ClearFreeList()和PyCFunction_ClearFreeList()函数。

2).方法调整

  • 在之前的版本中,math.factorial()函数只接受非负整数值,否则将引发ValueError。 在python3.9中该函数将弃用,任何参数都将引发TypeError。
  • 弃用parser模块,并将在以后的Python版本中删除。
  • 修改random模块的seeds类型,今后只支持None,int,float,str,bytes和bytearray类型。
  • 始终允许打开GzipFile文件进行读写,即使不指定mode参数也不会发出警告。
  • 推荐使用_tkinter.TkappType的splitlist()方法代替split()方法。

3).移除模块

  • collection.abc 里面的抽象基类将不在常规的 collection 模块中公开。
  • 删除 sys.getcheckinterval() 和 sys.setcheckinterval() 函数。
  • 删除threading.Thread 的 isAlive() 方法。
  • 删除 ElementTree 中的getchildren() 和 getiterator()方法。
  • 删除 旧 plistlib 模块的实现,同时删除其中的use_builtin_types 参数。

小结:
总的来说,目前python3.9相对于3.8改变并不是很大,而且大多数都是一些偏底层的东西,我们一般用户很少会碰到 。 不过,目前推出的python3.9.0a1只是第一个迭代版本,并不是正式版本。后续也有可能会有其他变动,但是按理说变化也不会太大。 基于以上原因,个人认为大家可以继续使用现有的版本学习和工作,如果你现在的版本不算很老的话。
下面做一个调查,看看大家都在用什么版本:

更多有趣有用文章

懒人专用的奇淫技巧,用Python实现炫酷的语音操作电脑
Python里三个最高逼格的调试神器
九大神招,让Python里数据分析神器Jupyter,完美升华
推荐一款Python编辑器,集Pycharm和Sublime优点于一身的王者

老司机吐槽

建议看一下,零基础学Python都想问的6个问题,老司机给你两千字解答
51个Python鲜为人知的秘密特性,老司机看完都惊叹不已
仿真学习系列(四十九):Sigrity仿真之电容库制作 在高速电路设计中,电源完整性(PI)是确保系统稳定、可靠运行的关键因素。随着电子产品对性能的要求不断提升,PDN(电源分配网络)的设计与优化变得尤为重要。为了确保电源网络在高速工作状态下不会引发电压波动和信号干扰,我们需要在设计中精确地选择电容器进行优化,而电容库的制作则是这一过程的核心。 OptimizePI作为一个强大的电源完整性优化工具,能够帮助设计师根据不同的目标,批量进行PDN仿真,以得出最佳电容选择。 阅读详情

相关推荐

手机刷双系统

刷机教程(https://www.geekeyes.cn/forum.php/forum.php?mod=viewthread&tid=492) 解锁教程(http://www.gioov.com/index.php/1386)   解锁教程 cmd下 进入adb目录( 如果环境变量配置了adb 可以直接在cmd 下输入命令) 手机连接电脑,确保usb 调试打开,然后手机连接电脑,...

超宇的博客 1万+

Python3.9和Python3.7有什么区别?

Python3.9相对于3.7来说有了一定的性能提升,其中包括实现了PEP 563,使得对于一些情况下的类型注释可以进行延迟评估,从而减少了类型注释对于程序性能的消耗。由于在Python3.9中引入了一些新的特性和语法,因此在将代码从Python3.7迁移到Python3.9时,可能需要进行一些更改。Python是一门使用广泛,且高级的编程语言,而且随着时间的推移,Python也相继更新了许多版本,这些版本都带来了许多新的功能和改进,那么Python3.9和Python3.7有什么区别?

oldboyedu1的博客 2134

消费级显卡跑大模型:RTX 3060 12G 部署 70 亿参数 AI 编程助手的优化实战

本文详细介绍了如何在消费级显卡RTX 3060 12G上,通过量化、投机解码和分页KV-Cache等核心优化技术,成功部署并流畅运行70亿参数的CodeLlama-7B编程助手。文章提供了从环境配置、模型准备到参数调优的完整实战笔记,实测显存占用降至7.3GB,生成速度达21.7 token/秒,为开发者和技术爱好者提供了可行的本地AI部署方案。

weixin_29053067的博客 1259

Python各版本的差异总结

Python2 Python3 Python3.4 Python3.5 Python3.6 Python3.7 Python3.8 Python3.9 Python3.10 Python3.11 Python3.12 Python3.13 Python3.14 Python3.15

LeoHsiao的博客 8万+

AI辅助SCI论文大修:一键生成回复信+同步修改稿,效率提升300%

AI可以针对多位审稿人的意见进行逐点(point-by-point)回复,语言地道流畅,能够处理邮件格式、礼貌性回复和部分内容修正。最新的LLM:GPT-5, Claude 4.1都是带有agentic功能,能规划复杂任务,并调用工具执行复杂任务的大模型。有时候审稿人意思模棱两可,你的反复揣摩ta关注的点是什么,回复的不好,很有可能下一轮被reject。这个2.0升级版,除了在response中完美rebuttle,在文中对应部分的修改,也会帮你一并呈现,基本上就是可以直接拿来用的版本;

dinaxuejie的博客 1665

RagFlow专题三、RagFlow 关键技术(向量数据库、文档分块、Prompt 设计与召回排序优化)

FAISS 是由 Meta(Facebook)开源的高效向量检索库,适用于大规模向量搜索任务。,并了解了如何通过 RagFlow 机制优化信息检索和生成质量。(FAISS、Milvus、ES)用于高效存储和检索语义向量。提高 LLM 生成效果,增强 RagFlow 任务质量。(分块)策略,将文档拆分成更小的片段,提高检索效率。提高检索精准度,避免文本过长导致信息丢失。提升检索结果的相关性,提高生成质量。当多个检索结果被返回时,我们需要一个。在前一篇文章中,我们详细探讨了。在 RagFlow 任务中,

xiaoqi270620903的专栏 3040

python用哪个版本比较好,python什么版本比较稳定

目前建议初学者选择Python3.x版本1、目前,使用Python3.x是大势所趋2、Python3.x在Python2.x的基础上做了功能升级3、Python3.x和Python2.x思想基本是共通的当然选择Python3.x也会有缺点,那就是很多扩展库的发行总是滞后于Python的发行版本,甚至目前还有很多库不支持Python3.x。因此,在选择Python时候,一定要先考虑清楚自己的学习目的,例如,打算做哪方面的开发、需要用到哪些扩展库,以及扩展库支持的最高Python版本等。

2301_79533350的博客 9881

YOLOv8改进 | 特殊场景检测篇 | 最新的多尺度特征提取DICAM(全网独家首发,增强水下图像的质量)

本文给大家带来的最新改进机制是多尺度特征提取和通道注意力机制DICAM,深度Inception和通道注意力模块(DICAM)主要用于用于增强水下图像的质量、对比度和色偏。所提出的DICAM模型考虑了水下图像的比例退化和不均匀色偏,从而提高图像的质量。通过在两个公开的水下图像增强数据集上的广泛实验,验证了提出的模型在全参考和无参考图像质量评估指标方面。欢迎大家订阅我的专栏一起学习YOLO,购买专栏读者联系读者入群获取进阶项目文件!

Snu77的博客 2216

python什么版本比较稳定,哪个版本的python最好用

大家好,小编来为大家解答以下问题,python哪个版本最好用又稳定,哪个版本的python最好用,今天让我们一起来看看吧!其实很多人想知道python软件哪个版本好用,工欲善其事必先利其器,这是能理解的,下面小编个大家详细对比一下,python 3.7和3.8哪个版本好。

chatgpt002的博客 3557

华为OD机试 双机位A卷 - 流量波峰 (C++ & Python & JAVA & JS & GO)

华为OD机试双机位A卷 流量波峰,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1377

智驾芯片新天团!NVIDIA Thor vs 高通8797 vs 蔚来神玑NX9031,2025-2026谁能称王?

应用场景推荐芯片理由高阶NOA + L4 Robotaxi千TOPS以上,满足BEV+TransformerL2+/L3级别NOAThor-U / 高通8797算力适中,功耗控制佳,生态成熟经济型城市NOAThor-Z / S性价比均衡,适合前装普及自研平台一体化NX9031华为之外最强自研整合方案📌 TOPS不再是天花板,GPU、带宽、功耗、上市时间和车企绑定都是决胜关键📌 Thor系列仍然统治高端,但国产神经元开始觉醒📌 智驾芯片的选择,从“强”走向“适合场景”

weixin_43199439的博客 2646

python3.4和3.7的区别_还在撸Python3.7,Python3.9新鲜出炉,菜鸟哥带你尝鲜解读

原标题:还在撸Python3.7,Python3.9新鲜出炉,菜鸟哥带你尝鲜解读 是不是感觉python3.7刚刚使用,3.8还没捂热乎,怎么3.9这么快就来了!其实版本迭代速度快,说明这门编程语言的活力强,对于我们使用者来说是件好事,而且谁也没说必须使用最新版本,我到现在仍然在用python3.6。但是呢,新版本出来了一定要体验一下,看看都有哪些改动和优化,说不定哪个新特性就能解决你手里的大问题...

weixin_39805883的博客 2365

基于STM32设计的智能水产养殖系统(2025)_359

本设计提出并实现了一种基于STM32F103RCT6微控制器的智能水产养殖控制系统,针对传统水产养殖中人工依赖高、环境参数监测滞后、控制手段单一等问题,集成了TDS水质检测、水温检测、水位监测、自动喂食、自动充氧、换水控制与加热保温等功能。系统采用ESP8266模块实现WIFI联网,通过MQTT协议将关键数据上传至华为云物联网平台,支持Android手机APP和Windows上位机远程监测与控制。同时,系统具备本地LCD数据显示与蜂鸣器异常报警功能,支持本地按键控制操作。整套系统功能完善,响应灵敏,运行稳定

625

python3 bytes可修改_还在撸Python3.7,Python3.9新鲜出炉,菜鸟哥带你尝鲜解读

是不是感觉python3.7刚刚使用,3.8还没捂热乎,怎么3.9这么快就来了!其实版本迭代速度快,说明这门编程语言的活力强,对于我们使用者来说是件好事,而且谁也没说必须使用最新版本,我到现在仍然在用python3.6。但是呢,新版本出来了一定要体验一下,看看都有哪些改动和优化,说不定哪个新特性就能解决你手里的大问题。1新的特性1).import异常我们在进行模块的相对引用时,可能会遇到...

weixin_39970823的博客 549

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

python3 获取file大小_还在撸Python3.7,Python3.9新鲜出炉,菜鸟哥带你尝鲜解读

是不是感觉python3.7刚刚使用,3.8还没捂热乎,怎么3.9这么快就来了!其实版本迭代速度快,说明这门编程语言的活力强,对于我们使用者来说是件好事,而且谁也没说必须使用最新版本,我到现在仍然在用python3.6。但是呢,新版本出来了一定要体验一下,看看都有哪些改动和优化,说不定哪个新特性就能解决你手里的大问题。1新的特性1).import异常我们在进行模块的相对引用时,可能会遇到...

weixin_39542936的博客 144

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python3 菜鸟_还在撸Python3.7,Python3.9新鲜出炉,带你尝鲜解读

From: 菜鸟哥 菜鸟学Python是不是感觉python3.7刚刚使用,3.8还没捂热乎,怎么3.9这么快就来了!其实版本迭代速度快,说明这门编程语言的活力强,对于我们使用者来说是件好事,而且谁也没说必须使用最新版本,我到现在仍然在用python3.6。但是呢,新版本出来了一定要体验一下,看看都有哪些改动和优化,说不定哪个新特性就能解决你手里的大问题。1 新的特性1).import异常我们在进...

weixin_36102010的博客 842

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python3 manage.py runserver 后台运行_还在撸Python3.7,Python3.9新鲜出炉,带你尝鲜解读...

From: 菜鸟哥 菜鸟学Python是不是感觉python3.7刚刚使用,3.8还没捂热乎,怎么3.9这么快就来了!其实版本迭代速度快,说明这门编程语言的活力强,对于我们使用者来说是件好事,而且谁也没说必须使用最新版本,我到现在仍然在用python3.6。但是呢,新版本出来了一定要体验一下,看看都有哪些改动和优化,说不定哪个新特性就能解决你手里的大问题。1 新的特性1).import异常我们在进...

weixin_39689394的博客 725

菜鸟教程《Python 3 教程》笔记(10):条件控制

笔记带有个人侧重点,不追求面面俱到。

猎猫骑巨兽的博客 411

菜鸟python_对比几段代码,看看你是 Python 菜鸟还是老鸟

Python 里有个小彩蛋:在 Python Shell 里输入 import this这段话被称作“Python 之禅”(The Zen of Python),它列举了一些 Python 所推崇的理念,比如:优美胜于丑陋明确胜于隐晦简单胜于复杂…可读性很重要不要忽略错误面对不确定时,拒绝猜测现在做好过不做,但盲目动手不如不做如果你的实现很难说清楚,那是个坏想法;反之亦然…当你学完基础,可以写点代...

weixin_39911916的博客 102

菜鸟教程python测验答案,菜鸟教程python3100题

大家好,小编为大家解答菜鸟教程python测验答案的问题。很多人还不知道菜鸟教程python3100题,现在让我们一起来看看吧!这篇文章主要介绍了python全系列官方中文文档,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下python基础知识点精心整理。Source code download: 本文相关源码​​​​​。

weixin_70649164的博客 1003

Python笔记(3) Python入门

导入模块、缩进、注释、多行语句、Print 输出、等待用户输入

氢键H-H 1万+

Python(菜鸟入门)3

在上述示例中,我们使用了一对字符串变量,在str.format()方法的应用实例中都使用了字符串字面值,这是为了方便。实际上任何使用字符串字面值的示例中都可以使用字符串变量,方法完全一样。 替换字段本身可以包含替换字段,嵌套的替换字段不能有任何格式,其主要应用是格式化规约计算。在对格式化规约计算进行更细致的解读时,我们将展示一个实例。现在我们将逐一替换字段的每一个部分,首先从字段名开始。 字段名...

qq_43742687的博客 211

菜鸟教程 python连接 mysql_浅谈Python访问MySQL的正确姿势

更多python教程请到: 菜鸟教程www.piaodoo.com人人影视www.sfkyty.com16影视www.591319.com星辰影院www.591319.comPy2 时代,访问 MySQL 数据库的模块除了 PyMySQL 和 MySQL-python 之外,还有以速度见长的 Umysql,以及非常小众的 Oursql 模块。进入了 Py3 时代之后,PyMySQL 与时俱进,...

weixin_39616693的博客 96

Python菜鸟--数据结构

先进后出,列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。先进先出,也可以把列表当做队列用,只是在队列里第一加入的元素,第一个取出来;在列表的最后添加或者弹出元素速度快,然而在列表里插入或者从头部弹出速度却不快(因为所有其他的元素都得一个一个地移动)。序列是以连续的整数为索引,与此不同的是,字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。

m0_54028211的博客 1003

送精选Python好书!

昨天发了一次送书活动,有粉丝提醒我,排版有问题,非常抱歉!写代码也好还是做人做事都要仔细一点,里面有好多书的封面没有加上,非常非常抱歉,所以今天重发一下,图灵的书还是不错的!我这个号有个...

cainiao_python的博客 269

Python实战学习指南:从零基础到独立开发,结合黑马课程与菜鸟教程

Python作为一门简洁高效的编程语言,其核心在于掌握基础语法与编程思维。理解变量、数据类型、控制流和函数等概念是构建程序的基石,而面向对象编程则能更好地组织复杂代码。这些技术价值在于提升代码的可读性、可维护性和复用性,广泛应用于数据分析、Web开发、自动化脚本等场景。本文基于**黑马程序员课程**的系统性框架,融合**菜鸟教程**的精准文档,提供一份学练结合的实战路径,帮助初学者从环境搭建到项目实战,快速建立扎实的代码手感,避免知识点零散不成体系的问题。

weixin_29279047的博客 237
上一篇: 2019脱单指南 | 用Python数据解决单身问题
下一篇: 首次公开:Python转型大数据开发全套视频教程,限时免费下载
菜鸟学Python
博客等级 码龄9年 8063粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值