自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(139)
  • 收藏
  • 关注

原创 Python 中的不可变数据类型的解析

Python 中的不可变数据类型包括数字类型(`int`、`float`、`complex`)、字符串(`str`)、元组(`tuple`)和冻结集合(`frozenset`)。当我们将 `a` 的值从 `10` 改为 `20` 时,`a` 的内存地址发生了改变,这表明我们创建了一个新的整数对象。这里,当我们将 `b` 的值从 `3.14` 改为 `2.71` 时,`b` 的内存地址也发生了变化,说明创建了新的浮点数对象。但实际上,我们创建了一个新的字符串对象,`s` 的内存地址也随之改变。

2025-03-27 15:54:20 400

原创 Python中`nonlocal`关键字:深入解析与实践应用

inner_function`通过`nonlocal`声明,表明它要修改的`outer_variable`是外层函数中的那个变量,而非创建一个新的局部变量。这里,`counter`函数返回一个闭包`increment`。`increment`函数使用`nonlocal`修改外层函数的`count`变量,从而实现了一个简单的计数器功能。在这个状态机示例中,`transition`函数根据当前的`state`值进行状态转换,并通过`nonlocal`修改`state`,确保状态机的状态能够正确更新。

2025-03-26 07:32:09 757

原创 Python 变量作用域、global 关键字与闭包作用域深度解析 第三部分

在这个例子中,`count` 变量被封装在 `counter` 函数的作用域内,外部无法直接访问和修改它,只能通过 `increment` 函数来对其进行操作。在这个例子中,`multiplier` 函数返回一个闭包 `multiply`,闭包保存了 `factor` 的值。闭包可以将一些通用的逻辑封装在外部函数中,通过传入不同的参数来创建不同的闭包,从而实现代码的复用和灵活性。闭包可以把数据封装在外部函数的作用域中,只有内部函数能够访问这些数据,这有助于实现数据的隐藏和保护。

2025-03-24 19:34:28 829

原创 Python 变量作用域、global 关键字与闭包作用域深度解析 第二部分

在这个例子中,`modify_global_list` 函数内部使用 `append` 方法对全局列表 `global_list` 进行了原地修改,由于没有对 `global_list` 进行重新赋值,因此不需要使用 `global` 关键字。在这个例子中,`inner` 函数内部的 `print(x)` 语句会先在局部作用域查找 `x`,找到局部变量 `x` 的值为 `30` 并输出。内置作用域是 Python 内置函数和内置对象所在的作用域,这些函数和对象在任何地方都可以直接使用,无需导入任何模块。

2025-03-21 12:51:17 712

原创 Python 变量作用域、global 关键字与闭包作用域深度解析 第一部分

在 Python 编程中,理解变量的作用域、`global` 关键字的使用以及闭包作用域的概念至关重要。当我们在函数内部想要修改全局变量的值时,就需要使用 `global` 关键字进行声明。若不声明,在函数内部给变量赋值会创建一个新的局部变量,而不是修改全局变量。print(x, y) # 输出 10 20,全局变量 x 和 y 的值已被修改。不过,在实际编程中,过度使用全局变量可能会让代码的可维护性变差,因此建议谨慎使用。print(count) # 输出 1,全局变量 count 的值已被修改。

2025-03-20 19:09:19 425

原创 Python 中下划线 “_” 的多面性:从变量到约定

这样,即使`Child`类定义了同名的变量或方法,也不会与父类的`__private_variable`产生冲突,从而保证了类的封装性和继承体系的稳定性。这里,我们只关心`10`除以`3`的商,而余数对于当前逻辑并无用处,使用下划线接收余数,让代码简洁明了,同时也避免了创建一个无意义的变量名。在Python中,以单下划线开头的变量或方法通常被视为私有成员。在这个例子中,下划线“_”作为循环变量,仅仅是为了满足`for`循环的语法要求,它并不代表任何实际数据,我们更关注的是循环体中的操作会被执行5次。

2025-03-19 21:10:24 793

原创 Python F-String 深度解析:原理、用法与最佳实践

相较于 `%` 格式化和 `str.format()`,F-String 的执行速度快约 20%,因为它减少了中间对象的创建。1. **优先使用 F-String**:替代 `%` 格式化和 `str.format()`| 浮点数精度 | `f"{3.1415:.2f}"` | `3.14` |- **特殊场景**:仅在与现有代码风格保持一致时使用 `F`- **官方推荐**:PEP 498 建议使用小写 `f`- **社区习惯**:小写 `f` 占比超过 95%

2025-03-18 22:29:05 906

原创 python打印输出到文件

通过本文的介绍,我们了解了Python中`print`函数输出到文件的两种主要方法:使用`print`函数的`file`参数和重定向`sys.stdout`。除了使用`print`函数的`file`参数,我们还可以通过重定向`sys.stdout`来实现将`print`函数的输出发送到文件中。1. **恢复原始输出**:在重定向`sys.stdout`后,一定要记得恢复原始的`sys.stdout`,否则后续的`print`函数调用可能会出现异常,或者导致输出结果不符合预期。

2025-03-17 22:19:20 867

原创 python中print函数的flush如何使用

在 Python 中,`print` 函数的 `flush` 参数是一个布尔值,默认值为 `False`。在上述例子中,使用 `flush=True` 可以确保提示信息 `Please enter your name: ` 立即显示在控制台,让用户能够及时看到并输入信息。在交互式程序中,当你需要在用户输入前显示提示信息时,使用 `flush=True` 可以确保提示信息立即显示,避免用户等待。在一些需要实时显示日志信息的场景中,使用 `flush=True` 可以确保日志信息及时显示。

2025-03-16 22:38:46 1105

原创 关于python的print函数的大对象输出

## 在 Python 中,`range(10**9)` 所占用的内存大小取决于 Python 版本,因为不同版本对 `range` 对象的实现方式有所不同,下面分别介绍 Python 2 和 Python 3 中 `range(10**9)` 的内存占用情况。通常情况下,`range` 对象占用的内存大小可能只有几十到几百字节,远小于 Python 2 中 `range` 函数生成的列表所占用的内存,但是在实际上python3在使用的时候依然要分配那么大的内存,只是分配的时机不同。

2025-03-15 09:02:01 707

原创 python中print函数入门

**`end`**:它表示输出结束时要添加的字符串,默认值是换行符(`'\n'`)。- **`file`**:此参数指定了输出的目标文件对象,默认值是 `sys.stdout`,也就是标准输出设备(控制台)。- **`flush`**:这是一个布尔值参数,用于指定是否强制刷新流。- **`sep`**:该参数用于指定多个对象之间的分隔符,默认值是一个空格(`' '`)。输出结果为 `1-2-3...4 5 6`,第一个 `print()` 函数使用 `-` 作为分隔符,用 `...` 作为结束符。

2025-03-14 14:14:39 305

原创 mysql数据库如何实现自动空值自动填充

在mysql中,假设我们由这样一个需求,现在搞到了一批数据,需要对这些数据进行预处理,其中一项就是数据中有一部分空值,现在我们要根据含有空值的这一列进行自动向前填充,用前面一行的值填充当前行,如果前面一行的值也是空值,那么再往前推,直到找到一行的值不是空值,就用它填充这些空值。-- 如果当前行的 convertible_rate 不为 NULL,则更新 prev_rate。-- 如果当前行的 convertible_rate 为 NULL,则用前一行的值替换。-- 如果遍历完数据,退出循环。

2025-03-13 22:45:47 335

原创 python中date模块的功能和常用方法

在 Python 里,`date` 模块属于 `datetime` 标准库,其主要功能是处理日期相关的操作。#### 3. `date.replace(year, month, day)`:替换日期中的年、月、日。#### 1. `date(year, month, day)`:创建 `date` 对象。- **日期格式化**:能将日期按照指定格式输出为字符串,也可把字符串解析成日期对象。- **日期计算**:支持日期的加减运算,便于计算两个日期之间的差值。- **日期表示**:可精准表示年、月、日信息。

2025-03-12 20:33:38 307

原创 python中time模块的常用方法及应用

**功能**:将一个时间戳(可选参数,默认为当前时间戳)转换为 UTC 时间的 `struct_time` 对象。- **功能**:将一个 `struct_time` 对象(可选参数,默认为当前本地时间)按照指定的格式转换为字符串。- **功能**:将一个时间戳(可选参数,默认为当前时间戳)转换为本地时间的 `struct_time` 对象。- **应用场景**:在需要将用户输入的时间字符串或从文件中读取的时间字符串转换为可处理的时间对象时使用。

2025-03-11 20:20:37 522

原创 python中如何把dataframe转换为列表及其性能比较

在处理较小规模的DataFrame时,`values`属性和`to_numpy()`方法的性能相近,都相对高效,因为它们底层都是基于NumPy数组进行操作,并且转换过程较为直接。从pandas 0.24版本开始可用,先使用`to_numpy()`方法将DataFrame转换为NumPy数组,再通过`tolist()`方法转换为列表。先通过`values`属性将DataFrame转换为NumPy数组,然后再调用`tolist()`方法将数组转换为列表。'名字': ['小明', '小红', '小张'],

2025-03-10 23:33:46 744

原创 python如何把多维列表转换为dataframe

通过以上示例可以看出,将多维列表转换为 `DataFrame` 的关键在于将其转换为合适的二维形式,以便于使用 `pandas` 的 `DataFrame` 构造函数进行转换。- `pd.DataFrame(two_d_list)`:使用 `pandas` 的 `DataFrame` 构造函数将二维列表转换为 `DataFrame`。二维列表是最常见的多维列表形式,可将其看作表格数据,每一行对应 `DataFrame` 中的一行,每一列对应 `DataFrame` 中的一列。展开三维列表为二维列表。

2025-03-09 11:54:18 439

原创 python多维列表简述

可以理解为多个三维列表组成的集合,常用于处理一些具有更复杂结构的数据,如在处理视频数据时,若将视频看作是由多个帧组成,每个帧是一个三维的图像数据(包含高度、宽度和颜色通道),那么整个视频就可以用四维列表来表示,其中第四维可以表示时间维度上的帧序列。在实际应用中,还可能会遇到更高维度的列表,但随着维度的增加,数据的理解和处理难度也会急剧上升,通常需要结合具体的业务场景和数据特点来选择合适的数据结构。其形式是列表中的每个元素也是一个列表,每个子列表的长度可以相同,也可以不同。它是列表的列表的列表。

2025-03-08 15:42:56 913

原创 python中如何把list转换为dataframe之一维列表

关于dataframe与list的互相转换,要从两个角度不同维度去讲,一个是如何把list转换为dataframe,另一个是把dataframe转换为list。同时要考虑list的维度、dataframe的不同形状。先讲如何把list转换为dataframe。

2025-03-07 22:29:07 752

原创 python 使程序随机休眠几秒钟

random.gauss(mu, sigma)`会生成一个符合正态分布的随机浮点数,其中`mu`是均值,`sigma`是标准差。如果你想让程序在一个指定的时间范围内随机休眠,可以使用`random.uniform()`函数(用于生成浮点数)或`random.randint()`函数(用于生成整数)来生成随机的休眠时长。在 Python 中,可以使用`time`模块的`sleep`函数来让程序休眠指定的时间,结合`random`模块来生成随机的休眠时长。print("程序休眠结束,继续执行")

2025-03-06 15:44:13 639

原创 python如何遍历一个dataframe的第指定列

**使用 `apply()` 方法**:可以对列数据进行更复杂的操作,通过定义不同的函数来实现不同的功能,但在简单遍历场景下略显繁琐,但是如果在要在遍历的过程中,实现更加复杂的功能,可以使用apply()。- **使用 `itertuples()` 方法**:性能比 `iterrows()` 好,因为它返回的是 `namedtuple` 对象,内存占用少,迭代速度快。- **使用 `for` 循环遍历 `Series`**:代码简洁,适用于简单的遍历操作,性能相对较好。也可以通过索引访问,索引从。

2025-03-05 20:19:40 654

原创 pandas如何在指定位置添加一个dataframe

如果`df1`和`df2`的行数或列数不匹配,可能需要根据具体情况进行调整,比如使用`reindex`方法来对齐索引等。在`pandas`中,可以使用`concat`函数结合索引操作等在指定位置添加一个`DataFrame`。假设有两个`DataFrame`,`df1`和`df2`,要将`df2`按行添加到`df1`的指定位置`n`。首先将被插入的的dataframe分成两份,然后使用concat方法将三个dataframe连接到一起。如果要将`df2`按列添加到`df1`的指定位置`m`。

2025-03-04 21:48:09 619

原创 RuntimeWarning: invalid value encountered in scalar power在进行标量的幂运算时遇到了无效值

2. **除以零**:如果 `initial_cash` 为 `0` ,那么 `profit / initial_cash` 会得到 `inf`(无穷大)或者当 `yy` 为 `0` 时,`1 / yy` 也会得到 `inf` ,后续的幂运算就可能出现无效值情况。但是在复数范围内是可以表示的,例如在复数范围内-4的平方根是2i和-2i。3. **数据类型问题**:如果 `profit`、`initial_cash` 或 `yy` 的数据类型不合适,导致运算结果不准确,也可能引发该警告。

2025-02-27 20:13:24 692

原创 pandas如何在dataframe上再添加一个dataframe

表示重新生成连续的索引。如果想要按列方向连接,即将。如果想要根据特定列进行合并,可以使用。上述代码中,默认根据索引进行合并,方法可以根据索引或指定的键将两个。连接在一起,默认是按行方向(进行合并或连接操作,主要有。函数用于根据指定的键将两个。函数可以沿着指定轴将多个。分别是左右连接,保留两个。表示采用外连接的方式,)进行连接,即将一个。函数按行方向连接两个。方法根据索引进行合并。

2025-02-26 21:46:09 493

原创 pandas如何添加列

如果要添加的列是一个常量值或者可广播的序列,可以直接通过索引赋值的方式添加新列。方法可以在指定位置插入新列。的情况下添加新列,并返回一个新的。添加一个基于现有列计算的新列。方法可以在不修改原始。创建要插入的新列数据。

2025-02-25 20:26:11 252

原创 pandas的dataframe如何在指定位置添加行

拆分成两部分,再将需要添加的行与这两部分进行连接。进行重新索引,可以通过重新索引在指定位置插入行。的末尾,结合起来可以在指定位置添加行。表示重置索引,丢弃原来的索引。索引器可以按标签选择数据,方法可以将一行或多行添加到。函数可以沿着指定轴将多个。连接在一起,可以先将原。中,可以使用以下方法。函数将三部分连接起来。的索引,为生成的新的。

2025-02-24 19:43:45 768

原创 dataframe如何在末尾添加多行

中添加多行该如何实现?可通过以下常见方式在。索引器分两次操作来添加两行数据。,默认)合并在一起,并重置索引,从而在原。,从而实现添加行的效果。,要添加的两行数据分别存储在字典。方法(旧版本支持,新版本已不推荐。这里先创建了一个包含两行数据的。方法将包含两行数据的新。末尾添加了两行数据。

2025-02-23 23:02:15 687

原创 pandas 如何在末尾添加一行

pandas 1.4.0之后不再使用append方法)方法(在旧版本中,以后不推荐使用)在。的尾部添加一条新行数据,使用方法是。方法(旧版本支持,新版本已不推荐。中已不推荐使用,建议优先使用。,要添加的数据存储在字典。这里将新行数据表示为。

2025-02-22 14:10:44 402

原创 mysql查错误`Error Code: 1248. Every derived table must have its own alias`

在查询的时候,特别是有子查询、多表查询的时候遇到的这个错误 `Error Code: 1248. Every derived table must have its own alias` , MySQL 数据库报出的这个错误翻译一下就是:每一个派生表都必须有自己的别名。在你提供的 SQL 语句里,子查询没有别名,所以 MySQL 无法识别它,从而抛出了这个错误。- 在子查询 `(SELECT ... )` 后面添加了 `AS subquery`,这里的 `subquery` 就是子查询的别名。

2025-02-21 10:26:22 682

原创 python查错误TypeError: bad operand type for unary -: ‘str‘

在这个示例中,首先使用 ​​int(num_str)​​ 将字符串 ​​"10"​​ 转换为整数 ​​10​​,然后对整数应用一元减号运算符,得到结果 ​​-10​​。这里使用 ​​float(num_str)​​ 将字符串 ​​"3.14"​​ 转换为浮点数 ​​3.14​​,再应用一元减号运算符,得到结果 ​​-3.14​​。在这个示例中,字符串 ​​"abc"​​ 无法转换为数值类型,因此会触发 ​​ValueError​​ 异常,执行 ​​except​​ 块中的代码,输出错误信息。

2025-02-20 22:50:39 647

原创 matplotlib 如何是的横坐标纵向显示

在 ​​​ 中,若要让横坐标标签纵向显示,可以使用 ​​​ 或 ​​ 方法结合旋转参数来实现。

2025-02-19 23:51:08 349

原创 mysql查询判断函数,类似decode

select a.name,decode(a.department,'HR','人力资源部','IT','信息技术部','Finance','财务部','其他') as department_ch from employees a;-- CASE 表达式是实现类似 DECODE 功能的最常用方式,它有两种形式:简单 CASE 表达式和搜索 CASE 表达式。IF(department = 'Finance', '财务部', '其他部门')ELSE '其他部门'(1, '张三','HR'),

2025-02-18 23:33:50 508

原创 pypthon字符串与日期转换

可使用datetime模块将字符串转换为日期类型,使用datatime 的strptime方法时候需要指定日期格式。指定日期格式:根据日期字符串的格式,定义对应的日期格式字符串。例如,日期字符串为"2024-12-12",对应的日期格式字符串为"%Y-%m-%d"。%H:24 小时制的小时数(00 - 23)%I:12 小时制的小时数(01 - 12)%m:两位数的月份表示(01 - 12)%Y:四位数的年份表示(如 2024)%d:两位数的日表示(01 - 31)%y:两位数的年份表示(如 24)

2025-02-17 22:46:14 471

原创 python爬虫预备知识三-多进程

python实现多进程的方法:fork、multiprocessing模块创建多进程。

2024-08-06 21:56:59 760

原创 pythonpython爬虫预备知识二-序列化和反序列化

序列化是为了将内存中的数据保存在磁盘上或者用于传输,实现程序状态的保存和共享。反序列化反之。序列化后的变量再被反序列化回来之后,两者之间已经没有任何关系。序列化后的文件是在不同程序或者说不同语言之间传递数据的关键方法之一,可以将内容标准化为xml、json等格式,用于存储或者网络传输。

2024-08-06 21:56:07 901

原创 python爬虫预备知识一

正常的文件读取使用的过程是,打开文件,建立文件对象,读取内容或者写入内容,关闭文件对象释放资源。分离一个路径的目录名和文件名,os.path.split(r’/home/data/test.txt’),返回一个元组(‘/home/data’,’test.txt’)分离扩展名,os.path.splitext(r’/home/data/test.txt’),返回一个元组(‘/home/data/test’,’.txt’)只有name是必须得,后面的模式、缓冲是可选的,默认是读模式,默认无缓冲区。

2024-08-06 21:54:12 572

原创 python爬虫预备知识一-读写文件及IO异常

正常的文件读取使用的过程是,打开文件,建立文件对象,读取内容或者写入内容,关闭文件对象释放资源。文件读取一般分为按照字节、按照字符读取,常用方法是read()、readlines()、close()。如果是大文件,比较合适的是循环使用read(size)方法,配置文件适合使用readline()方法。只有name是必须得,后面的模式、缓冲是可选的,默认是读模式,默认无缓冲区。该参数是0时,表示没有缓冲区,是负数时代表使用默认缓冲区大小,是正数时代表缓冲区大小。read()方法是一次性读取。

2024-08-03 08:52:31 469

原创 python爬虫预备知识二-文件写入及常用方法

分离一个路径的目录名和文件名,os.path.split(r’/home/data/test.txt’),返回一个元组(‘/home/data’,’test.txt’)分离扩展名,os.path.splitext(r’/home/data/test.txt’),返回一个元组(‘/home/data/test’,’.txt’)获取当前系统平台使用的行终止符,windows使用’\r\n’,linux使用’\n’,Mac使用’\r’复制文件,oldfile只能是文件,newfile可以是文件也可以是目录。

2024-08-03 08:51:23 428 1

原创 python爬虫预备知识三-序列化和反序列化

序列化后的文件是在不同程序或者说不同语言之间传递数据的关键方法之一,可以将内容标准化为xml、json等格式,用于存储或者网络传输。序列化是为了将内存中的数据保存在磁盘上或者用于传输,实现程序状态的保存和共享。python中常见序列化和反序列化模块cPickle和pickle。例子4:用loads方法或者load方法将序列化文件内容反序列化。loads方法:把序列化后的文件读取的str反序列化为对象。方法将序列化后的文件内容读取为字符串,并且反序列化展示。load方法:将文件直接反序列化为对象。

2024-08-03 08:49:01 1014

原创 昇思MindSpore学习入门-自动混合精度

当用户需要在单个运算,或多个模块组合配置运算精度时,Cell粒度往往无法满足,此时可以直接通过对输入数据的类型进行cast来达到自定义粒度控制的目的。

2024-07-29 21:21:57 400

原创 昇思MindSpore学习入门-静态图高级编程技巧二

在MindSpore框架内部,针对副作用的问题会插入Load算子,该算子属于虚拟算子,不需要在后端执行,不占用显存,仅用于表示需要读取全局变量的值。在图模式下,需要编译完整个图之后才将图中的各个算子下发到后端执行,使用Load算子多次读取全局变量,而不是多次使用真实算子多次保存全局变量的值,这样可以减少显存的消耗。对于将会被编译成静态计算图的函数,如Cell的construct函数、@jit修饰的函数或前两者调用的子函数,如果需要在函数内创建@jit_class所修饰的类的实例,参数要求为常量。

2024-07-28 20:47:54 688

企业规模(大中小微)批量分类工具

根据企业的公司名称,行业类型,营业收入,资产总额,从业人员对企业的规模进行批量区分。

2023-06-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除