当前位置: 首页 > news >正文

岫岩网站建设/发广告平台有哪些免费

岫岩网站建设,发广告平台有哪些免费,投标网招标网,设计app需要的技术2.17 掩码数组:缺失值处理的优雅方案 目录 #mermaid-svg-12vjJJbyudPnkYBO {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-12vjJJbyudPnkYBO .error-icon{fill:#552222;}#mermaid-svg-12vjJJbyudPnkYBO…

在这里插入图片描述

2.17 掩码数组:缺失值处理的优雅方案

目录
《掩码数组:缺失值处理的优雅方案》
2.17.1 masked_array 原理
2.17.2 运算传播规则
2.17.3 与 Pandas NA 的对比
2.17.4 气象数据清洗案例
2.17.5 性能损耗分析
2.17.6 最佳实践与注意事项
2.17.7 总结
2.17.8 参考文献

2.17.1 masked_array 原理

NumPy 的 masked_array 是处理缺失值的一种优雅方案。它通过在一个数据数组上添加一个布尔掩码数组,来标记哪些元素是缺失的。

  • 掩码数组的基本概念:什么是掩码数组,为什么需要它。
  • 创建掩码数组:如何创建和初始化 masked_array
  • 掩码数组的属性: understanding the attributes of a masked_array.
masked_array 原理
基本概念
掩码数组是什么
为什么需要掩码数组
创建掩码数组
使用 np.ma.array
使用 np.ma.masked_array
使用 np.ma.masked_values
使用 np.ma.masked_where
掩码数组的属性
数据属性
掩码属性
填充值属性
2.17.1.1 掩码数组的基本概念

掩码数组 是一种包含两个部分的数据结构:一个数据数组和一个布尔掩码数组。数据数组存储实际的数据,布尔掩码数组标记哪些数据是无效的(缺失或无效)。

import numpy as np
import numpy.ma as ma# 创建一个简单的数据数组
data = np.array([1, 2, 3, 4, 5])# 创建一个掩码数组
mask = np.array([False, True, False, True, False])  # True 表示该位置的数据无效
masked_data = ma.array(data, mask=mask)print(f"数据数组: {data}")
print(f"掩码数组: {mask}")
print(f"掩码数据数组: {masked_data}")  # 无效数据会被显示为 --
2.17.1.2 创建掩码数组

NumPy 提供了多种方法来创建 masked_array

# 使用 np.ma.array
masked_data1 = ma.array([1, 2, 3, 4, 5], mask=[False, True, False, True, False])
print(f"masked_data1: {masked_data1}")# 使用 np.ma.masked_array
masked_data2 = ma.masked_array([1, 2, 3, 4, 5], mask=[False, True, False, True, False])
print(f"masked_data2: {masked_data2}")# 使用 np.ma.masked_values
masked_data3 = ma.masked_values([1, 2, 3, 4, 5], 2)  # 2 被标记为无效
print(f"masked_data3: {masked_data3}")# 使用 np.ma.masked_where
condition = np.array([False, True, False, True, False])
masked_data4 = ma.masked_where(condition, [1, 2, 3, 4, 5])
print(f"masked_data4: {masked_data4}")
2.17.1.3 掩码数组的属性

masked_array 有许多有用的属性,可以帮助我们更好地理解和操作数据。

# 数据属性
print(f"数据: {masked_data1.data}")# 掩码属性
print(f"掩码: {masked_data1.mask}")# 填充值属性
print(f"填充值: {masked_data1.fill_value}")# 计算有效数据的平均值
mean_value = masked_data1.mean()
print(f"有效数据的平均值: {mean_value}")

2.17.2 运算传播规则

处理 masked_array 时,运算会根据掩码数组的规则传播。例如,如果两个 masked_array 相加,任何一个操作数的无效元素都会导致结果中对应位置的元素也无效。

  • 基本运算传播:加法、减法等基本运算的传播规则。
  • 高级运算传播:统计运算、逻辑运算等高级运算的传播规则。
运算传播规则
基本运算传播
加法
减法
乘法
高级运算传播
统计运算
逻辑运算
自定义运算
2.17.2.1 基本运算传播

加法、减法等基本运算的传播规则如下:

# 创建两个掩码数组
data1 = np.array([1, 2, 3, 4, 5])
mask1 = np.array([False, True, False, True, False])
masked_data1 = ma.array(data1, mask=mask1)data2 = np.array([5, 4, 3, 2, 1])
mask2 = np.array([False, False, True, True, False])
masked_data2 = ma.array(data2, mask=mask2)# 基本运算
add_result = masked_data1 + masked_data2
print(f"加法结果: {add_result}")sub_result = masked_data1 - masked_data2
print(f"减法结果: {sub_result}")mul_result = masked_data1 * masked_data2
print(f"乘法结果: {mul_result}")
2.17.2.2 高级运算传播

统计运算、逻辑运算等高级运算的传播规则如下:

# 统计运算
mean_result = ma.mean([masked_data1, masked_data2])
print(f"平均值结果: {mean_result}")std_result = ma.std([masked_data1, masked_data2])
print(f"标准差结果: {std_result}")# 逻辑运算
and_result = ma.logical_and(masked_data1, masked_data2)
print(f"逻辑与结果: {and_result}")or_result = ma.logical_or(masked_data1, masked_data2)
print(f"逻辑或结果: {or_result}")# 自定义运算
def custom_operation(a, b):return ma.where(a > b, a, b)custom_result = custom_operation(masked_data1, masked_data2)
print(f"自定义运算结果: {custom_result}")

2.17.3 与 Pandas NA 的对比

Pandas 也提供了处理缺失值的方法,但与 masked_array 有所不同。了解它们之间的对比可以帮助我们选择合适的数据处理工具。

  • Pandas NA 的基本用法:如何使用 Pandas 的 NA 处理缺失值。
  • 性能对比masked_array 和 Pandas NA 的性能对比。
  • 适用场景:根据不同的需求选择合适的方法。
与 Pandas NA 的对比
基本用法
创建包含 NA 的 DataFrame
访问和操作缺失值
性能对比
基本运算性能
统计运算性能
适用场景
大规模数据处理
小规模数据处理
2.17.3.1 Pandas NA 的基本用法

Pandas 使用 NaN 来表示缺失值。

import pandas as pd# 创建一个包含缺失值的 DataFrame
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5],'B': [5, 4, 3, np.nan, 1]
})print(f"包含缺失值的 DataFrame: \n{df}")# 访问和操作缺失值
missing_mask = df.isna()
print(f"缺失值掩码: \n{missing_mask}")df_cleaned = df.dropna()
print(f"删除缺失值后的 DataFrame: \n{df_cleaned}")
2.17.3.2 性能对比

通过对比 masked_array 和 Pandas NA 的性能,可以了解它们在不同场景下的优劣。

# 生成大规模数据
size = 10000000
data1 = np.random.uniform(0, 100, size)
mask1 = np.random.choice([True, False], size, p=[0.05, 0.95])  # 5% 的数据为无效
masked_data1 = ma.array(data1, mask=mask1)df_data1 = pd.Series(data1)
df_data1[df_data1[mask1]] = np.nan# 基本运算性能对比
start_time = time.time()
result_ma = masked_data1 + masked_data1
ma_time = time.time() - start_time
print(f"masked_array 基本运算用时: {ma_time:.2f}秒")start_time = time.time()
result_pandas = df_data1 + df_data1
pandas_time = time.time() - start_time
print(f"Pandas NA 基本运算用时: {pandas_time:.2f}秒")# 统计运算性能对比
start_time = time.time()
mean_ma = ma.mean(masked_data1)
ma_time = time.time() - start_time
print(f"masked_array 统计运算用时: {ma_time:.2f}秒")start_time = time.time()
mean_pandas = df_data1.mean()
pandas_time = time.time() - start_time
print(f"Pandas NA 统计运算用时: {pandas_time:.2f}秒")# 性能损耗分析
if ma_time < pandas_time:print("masked_array 性能更好")
else:print("Pandas NA 性能更好")
2.17.3.3 适用场景
  • 大规模数据处理masked_array 在处理大规模数据时性能更优。
  • 小规模数据处理: Pandas NA 在处理小规模数据时更简洁方便。

2.17.4 气象数据清洗案例

气象数据通常包含大量的缺失值。通过一个具体的气象数据清洗案例,展示如何使用 masked_array 高效处理缺失值。

  • 读取气象数据:如何读取和解析气象数据文件。
  • 标记缺失值:如何使用 masked_array 标记和处理缺失值。
  • 数据清洗:如何清洗和补全缺失值。
气象数据清洗案例
读取气象数据
文件格式
示例代码
标记缺失值
使用 masked_array
示例代码
数据清洗
补全缺失值
示例代码
2.17.4.1 读取气象数据

气象数据文件通常为 CSV 格式,包含多个字段,如日期、温度、湿度等。

import pandas as pd# 读取气象数据
df = pd.read_csv('weather_data.csv')
print(f"原始气象数据: \n{df.head()}")
2.17.4.2 标记缺失值

使用 masked_array 标记气象数据中的缺失值。

# 将 DataFrame 转换为结构化数组
weather_dtype = np.dtype([('date', 'U10'), ('temperature', 'f4'), ('humidity', 'f4')])
weather_data = df.to_records(index=False, convert_datetime64=True)# 创建掩码数组
temperature_mask = np.isnan(weather_data['temperature'])
humidity_mask = np.isnan(weather_data['humidity'])masked_weather_data = ma.array(weather_data, mask={'temperature': temperature_mask, 'humidity': humidity_mask})
print(f"标记缺失值后的气象数据: \n{masked_weather_data}")
2.17.4.3 数据清洗

通过插值法等方法补全缺失值。

# 使用插值法补全温度和湿度的缺失值
def interpolate_masked_data(data, field):valid_indices = np.where(~data[field].mask)[0]valid_values = data[field][~data[field].mask]invalid_indices = np.where(data[field].mask)[0]interpolated_values = np.interp(invalid_indices, valid_indices, valid_values)data[field][invalid_indices] = interpolated_valuesreturn datainterpolated_weather_data = interpolate_masked_data(masked_weather_data, 'temperature')
interpolated_weather_data = interpolate_masked_data(interpolated_weather_data, 'humidity')
print(f"清洗后的气象数据: \n{interpolated_weather_data}")

2.17.5 性能损耗分析

使用 masked_array 处理缺失值时,可能会有一些性能损耗。通过对比不同方法的性能,可以更好地理解这些损耗。

  • 内存占用:分析 masked_array 和非掩码数组的内存占用。
  • 运算速度:分析 masked_array 和非掩码数组的运算速度。
性能损耗分析
内存占用
分析方法
示例代码
运算速度
分析方法
示例代码
2.17.5.1 内存占用

masked_array 会额外占用内存来存储掩码数组。

# 计算内存占用
data = np.random.uniform(0, 100, (1000000, 3))
masked_data = ma.array(data, mask=np.random.choice([True, False], data.shape, p=[0.05, 0.95]))print(f"普通数组内存占用: {data.nbytes / (1024 * 1024):.2f} MB")
print(f"掩码数组内存占用: {masked_data.nbytes / (1024 * 1024):.2f} MB")
2.17.5.2 运算速度

masked_array 的运算速度可能会受到掩码数组的影响。

# 计算运算速度
import time# 普通数组的运算
start_time = time.time()
result = data + data
time_used = time.time() - start_time
print(f"普通数组运算用时: {time_used:.2f}秒")# 掩码数组的运算
start_time = time.time()
result_masked = masked_data + masked_data
time_used_masked = time.time() - start_time
print(f"掩码数组运算用时: {time_used_masked:.2f}秒")# 性能损耗
speed_loss = (time_used_masked - time_used) / time_used * 100
print(f"性能损耗: {speed_loss:.2f}%")

2.17.6 最佳实践与注意事项

在使用 masked_array 时,遵循以下最佳实践和注意事项可以确保代码的高效性和稳定性。

  • 合理设置掩码:根据数据特性设置掩码。
  • 避免频繁修改掩码:频繁修改掩码可能会导致性能下降。
  • 使用内存映射:使用 memmap 可以处理大规模数据。
  • 错误处理:如何处理常见的错误和异常情况。
最佳实践与注意事项
合理设置掩码
避免频繁修改掩码
使用内存映射
错误处理
空值处理
数据溢出
2.17.6.1 合理设置掩码

根据数据特性设置掩码,可以提高数据处理的效率。

# 合理设置掩码
data = np.array([1, 2, 3, 4, 5])
mask = (data < 3) | (data > 4)  # 小于 3 或大于 4 的位置标记为无效
masked_data = ma.array(data, mask=mask)print(f"合理设置掩码后的数组: {masked_data}")
2.17.6.2 避免频繁修改掩码

频繁修改掩码可能会导致性能下降,尽量在初始化时设置好掩码。

# 避免频繁修改掩码
data = np.array([1, 2, 3, 4, 5])
mask = np.array([False, True, False, True, False])
masked_data = ma.array(data, mask=mask)# 修改掩码
masked_data.mask = np.array([True, False, True, False, True])  # 频繁修改掩码
2.17.6.3 使用内存映射

处理大规模数据时,使用 memmap 可以显著提高性能。

# 使用 memmap
filename = 'large_weather_data.npy'
size = 100 * 1024 * 1024 * 1024  # 100GB
shape = (size // 100,)  # 假设每个记录是 100 字节# 定义气象数据的复合数据类型
weather_dtype = np.dtype([('date', 'U10'), ('temperature', 'f4'), ('humidity', 'f4')])# 创建一个包含 100GB 数据的内存映射数组
mmapped_data = np.memmap(filename, dtype=weather_dtype, mode='w+', shape=shape)# 填充一些示例数据
np.random.seed(42)
mmapped_data['date'] = np.array([f'date{i}' for i in range(shape[0])])
mmapped_data['temperature'] = np.random.uniform(0, 100, shape[0])
mmapped_data['humidity'] = np.random.uniform(0, 100, shape[0])# 读取并创建掩码数组
temperature_mask = np.isnan(mmapped_data['temperature'])
humidity_mask = np.isnan(mmapped_data['humidity'])masked_mmapped_data = ma.array(mmapped_data, mask={'temperature': temperature_mask, 'humidity': humidity_mask})print(f"内存映射数组: {mmapped_data[:10]}")
print(f"掩码数组: {masked_mmapped_data[:10]}")
2.17.6.4 错误处理

处理 masked_array 时,常见的错误和异常情况包括空值处理和数据溢出。

2.17.6.4.1 空值处理

确保在缺失值处理时不会出现空值。

# 空值处理
data = np.array([1, 2, 3, 4, 5])
mask = np.array([False, True, False, True, False])
masked_data = ma.array(data, mask=mask)# 计算平均值
mean_value = masked_data.mean()
print(f"有效数据的平均值: {mean_value}")# 如果所有数据都无效
masked_data.mask = True  # 所有数据无效
try:mean_value = masked_data.mean()
except ma.core.MeanOfMaskedArrayError:print("所有数据都无效,无法计算平均值")
2.17.6.4.2 数据溢出

处理大规模数据时,需要注意数据溢出问题。

# 数据溢出处理
data = np.array([1e308, 2e308, 3e308, 4e308, 5e308])
mask = np.array([False, True, False, True, False])
masked_data = ma.array(data, mask=mask)# 计算平均值
mean_value = masked_data.mean()
print(f"有效数据的平均值: {mean_value}")# 处理数据溢出
data = np.array([1e308, 2e308, 3e308, 4e308, 5e308], dtype=np.float64)
mask = np.array([False, True, False, True, False])
masked_data = ma.array(data, mask=mask)try:mean_value = masked_data.mean()print(f"有效数据的平均值: {mean_value}")
except OverflowError:print("数据溢出,无法计算平均值")

2.17.7 总结

  • 掩码数组的原理:介绍了 masked_array 的基本概念和创建方法。
  • 运算传播规则:详细解释了 masked_array 在基本运算和高级运算中的传播规则。
  • 与 Pandas NA 的对比:从基本用法、性能对比和适用场景三个方面进行了对比。
  • 气象数据清洗案例:通过一个具体的气象数据清洗案例,展示了 masked_array 在实际应用中的使用方法。
  • 性能损耗分析:分析了 masked_array 在内存占用和运算速度上的性能损耗。
  • 最佳实践与注意事项:提供了在使用 masked_array 时的几点最佳实践和注意事项。

通过本文的介绍,相信你已经对 masked_array 有了更深入的了解,并能够在实际项目中灵活运用它来处理缺失值问题。接下来,我们可以通过更多的实际案例和高级技巧,进一步提升你在数据处理方面的技能。

2.17.8 参考文献

参考资料名称链接
NumPy 官方文档NumPy Documentation
Python 数据科学手册Python Data Science Handbook
NumPy 掩码数组教程NumPy Masked Arrays Tutorial
Pandas 官方文档Pandas Documentation
Pandas 缺失值处理Handling Missing Data in Pandas
气象数据处理Processing Weather Data with Python
Python 性能调优Python Performance Optimization
内存映射文件Memory-Mapped Files in Python
NumPy 掩码数组性能分析Performance Analysis of NumPy Masked Arrays
数据清洗最佳实践Best Practices for Data Cleaning in Python

这篇文章包含了详细的原理介绍、代码示例、源码注释以及案例等。希望这对您有帮助。如果有任何问题请随私信或评论告诉我。

相关文章:

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.17 掩码数组:缺失值处理的优雅方案

2.17 掩码数组&#xff1a;缺失值处理的优雅方案 目录 #mermaid-svg-12vjJJbyudPnkYBO {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-12vjJJbyudPnkYBO .error-icon{fill:#552222;}#mermaid-svg-12vjJJbyudPnkYBO…...

PHP 常用函数2025.02

PHP implode() 函数 语法 implode(separator,array) 参数描述separator可选。规定数组元素之间放置的内容。默认是 ""&#xff08;空字符串&#xff09;。array必需。要组合为字符串的数组。 技术细节 返回值&#xff1a;返回一个由数组元素组合成的字符串。PHP 版…...

react中如何获取dom元素

实现代码 const inputRef useRef(null) inputRef.current.focus()...

【C++】继承(下)

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解C的继承&#xff08;下&#xff09;&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 5.继承与友元6.继承与静态成员7.复杂的菱形继承及菱形虚拟继承8.继…...

C语言实现字符串排序:从代码到原理深度解析

在编程的世界里&#xff0c;字符串处理是一项基础且重要的技能。今天&#xff0c;我们通过分析一段C语言代码来深入了解如何对字符串进行排序。 一、代码呈现 #include <stdio.h> #include <string.h> int main() { char s[1001]; scanf("%s", s); int…...

Vue3的el-table-column下拉输入实时查询API数据选择的实现方法

由于本人对el-table-column有下拉输入选择的要求&#xff0c;根据网上搜索的资料及本人优化&#xff0c;推出我比较满意的方法&#xff0c;供各位读者参考使用。 效果图 el-table-column写法 <el-table-columnlabel"货品编号"align"center"prop"…...

【数据结构】_链表经典算法OJ:复杂链表的复制

目录 1. 题目链接及描述 2. 解题思路 3. 程序 1. 题目链接及描述 题目链接&#xff1a;138. 随机链表的复制 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;…...

Vue 图片引用方式详解:静态资源与动态路径访问

目录 前言1. 引用 public/ 目录2. assets/ 目录3. 远程服务器4. Vue Router 动态访问5. 总结6. 扩展&#xff08;图片不显示&#xff09; 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 在 Vue 开发中&#x…...

chatGPT写的网页版贪吃蛇小游戏

chatGPT写的网页版贪吃蛇小游戏 前言网页版贪吃蛇小游戏 前言 之前无聊&#xff0c;让ChatGPT写了一段基于html语言的贪吃蛇小游戏代码 网页版贪吃蛇小游戏 将以下内容复制到记事本&#xff0c;重命名为xxx.html即可打开浏览器游玩 这里是一个使用HTML、CSS和JavaScript编写…...

Python量化交易助手:xtquant的安装与应用

Python量化交易助手&#xff1a;xtquant的安装与应用 技术背景和应用场景 在量化交易领域&#xff0c;Python因其强大的库支持和灵活性成为了许多开发者的首选语言。其中&#xff0c;xtquant 是迅投官方开发的一个Python包&#xff0c;专门用于与miniqmt通信&#xff0c;实现…...

前缀和算法

文章目录 算法总览题目1371.每个元音包含偶数次的最长子字符串 算法总览 题目 1371.每个元音包含偶数次的最长子字符串 1371.每个元音包含偶数次的最长子字符串 参考博主的讲解 思路分析&#xff1a;就是得使用前缀和记录情况&#xff0c;dp[i][j]表示s[0] 到s[i] 中&…...

Qt常用控件 输入类控件

文章目录 1.QLineEdit1.1 常用属性1.2 常用信号1.3 例子1&#xff0c;录入用户信息1.4 例子2&#xff0c;正则验证手机号1.5 例子3&#xff0c;验证输入的密码1.6 例子4&#xff0c;显示密码 2. QTextEdit2.1 常用属性2.2 常用信号2.3 例子1&#xff0c;获取输入框的内容2.4 例…...

《最小阻力之路》关于愿景的理解和思考

一、愿景的形成机制 1. 愿景的三层来源 来源层级形成机制案例潜在偏差风险① 本能冲动层对快感/痛苦的即时反应"想暴富"源于缺钱焦虑易被短期情绪劫持② 社会镜像层内化外界标准&#xff08;家庭/社会/文化&#xff09;"必须考研"因家人期待混淆他人需求…...

Ubuntu 22.04系统安装部署Kubernetes v1.29.13集群

Ubuntu 22.04系统安装部署Kubernetes v1.29.13集群 简介Kubernetes 的工作流程概述Kubernetes v1.29.13 版本Ubuntu 22.04 系统安装部署 Kubernetes v1.29.13 集群 1 环境准备1.1 集群IP规划1.2 初始化步骤&#xff08;各个节点都需执行&#xff09;1.2.1 主机名与IP地址解析1.…...

虚幻基础17:动画层接口

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 animation layer interface animation layer interface 动画层接口&#xff1a;动画图表的集。仅有名字。 添加到动画蓝图中&#xff0c;由动画蓝图实现动画图表。...

无人机PX4飞控 | PX4源码添加自定义uORB消息并保存到日志

PX4源码添加自定义uORB消息并保存到日志 0 前言 PX4的内部通信机制主要依赖于uORB&#xff08;Micro Object Request Broker&#xff09;&#xff0c;这是一种跨进程的通信机制&#xff0c;一种轻量级的中间件&#xff0c;用于在PX4飞控系统的各个模块之间进行高效的数据交换…...

HTMLCSS :下雪了

这段代码创建了一个动态的雪花飘落加载动画&#xff0c;通过 CSS 技术实现了雪花的下落和消失效果&#xff0c;为页面添加了视觉吸引力和动态感。 大家复制代码时&#xff0c;可能会因格式转换出现错乱&#xff0c;导致样式失效。建议先少量复制代码进行测试&#xff0c;若未能…...

如何处理 Typecho Joe 主题被抄袭或盗版的问题

在开源社区中&#xff0c;版权保护是一个非常重要的话题。如果你发现自己的主题&#xff08;如 Joe 主题&#xff09;被其他主题&#xff08;如子比主题&#xff09;抄袭或盗版&#xff0c;你可以采取以下措施来维护自己的权益。 一、确认侵权行为 在采取任何行动之前&#xf…...

利用Vue和javascript分别编写一个“Hello World”的定时更新

目录 一、利用Vue编写一个“Hello World”的定时更新&#xff08;1&#xff09;vue编码在Html文件中&#xff08;2&#xff09;vue编码在js文件中 二、利用javascript编写一个“Hello World”的定时更新 一、利用Vue编写一个“Hello World”的定时更新 &#xff08;1&#xff…...

volatile变量需要减少读取次数吗

问题说明 本人在前期读Netty源码时看到这样一段源码和注释&#xff1a; private boolean invokeHandler() {// Store in local variable to reduce volatile reads.int handlerState this.handlerState;return handlerState ADD_COMPLETE || (!ordered && handlerS…...

bootstrap.yml文件未自动加载问题解决方案

在添加bootstrap.yml文件后,程序未自动扫描到,即图标是这样的: 查了一些资料,是缺少bootstrap相关依赖,虽然已经添加了spring-cloud-context依赖,但是这个依赖并未引入bootstrap依赖,可能是版本问题,需要手动引入 <dependency><groupId>org.springframework.cloud&…...

编程AI深度实战:AI编程工具哪个好? Copilot vs Cursor vs Cody vs Supermaven vs Aider

​ 系列文章: 编程AI深度实战:私有模型deep seek r1,必会ollama-CSDN博客 编程AI深度实战:自己的AI,必会LangChain-CSDN博客 编程AI深度实战:给vim装上AI-CSDN博客 编程AI深度实战:火的编程AI,都在用语法树(AST)-CSDN博客 编程AI深度实战:让verilog不再是 AI …...

前端知识速记--CSS篇:display

前端知识速记–CSS篇&#xff1a;display 一、什么是 display 属性&#xff1f; display 属性用于指定一个元素如何被显示在网页上。它不仅影响元素的显示形式&#xff0c;还对元素的布局、结构以及与其他元素之间的关系产生重要影响。 二、常用 display 属性值 1. block …...

51单片机 01 LED

一、点亮一个LED 在STC-ISP中单片机型号选择 STC89C52RC/LE52RC&#xff1b;如果没有找到hex文件&#xff08;在objects文件夹下&#xff09;&#xff0c;在keil中options for target-output- 勾选 create hex file。 如果要修改编程 &#xff1a;重新编译-下载/编程-单片机重…...

WPF进阶 | WPF 动画特效揭秘:实现炫酷的界面交互效果

WPF进阶 | WPF 动画特效揭秘&#xff1a;实现炫酷的界面交互效果 前言一、WPF 动画基础概念1.1 什么是 WPF 动画1.2 动画的基本类型1.3 动画的核心元素 二、线性动画详解2.1 DoubleAnimation 的使用2.2 ColorAnimation 实现颜色渐变 三、关键帧动画深入3.1 DoubleAnimationUsin…...

分页按钮功能

前言 在前端开发中&#xff0c;分页功能是一个常见的需求&#xff0c;特别是当需要展示大量数据时&#xff0c;它能有效提升用户体验。该文章结合运用了HTML&#xff0c;CSS&#xff0c;JS实现网页的分页按钮功能&#xff0c;并且可以选择每页显示的条数试试更新总页数及显示当…...

数据分析系列--⑦RapidMiner模型评价(基于泰坦尼克号案例含数据集)

一、前提 二、模型评估 1.改造⑥ 2.Cross Validation算子说明 2.1Cross Validation 的作用 2.1.1 模型评估 2.1.2 减少过拟合 2.1.3 数据利用 2.2 Cross Validation 的工作原理 2.2.1 数据分割 2.2.2 迭代训练与测试 ​​​​​​​ 2.2.3 结果汇总 ​​​​​​​ …...

集合通讯概览

集合通信概览 &#xff08;1&#xff09;通信的算法 是根据通讯的链路组成的 &#xff08;2&#xff09;因为通信链路 跟硬件强相关&#xff0c;所以每个CCL的库都不一样 芯片与芯片、不同U之间是怎么通信的 多卡训练&#xff1a;多维并行&#xff08;xxx并行在上一期已经讲述…...

【FreeRTOS 教程 八】直达任务通知

目录 一、FreeRTOS 直达任务通知&#xff1a; &#xff08;1&#xff09;直达任务通知基本介绍&#xff1a; &#xff08;2&#xff09;更新目标通知的值&#xff1a; &#xff08;3&#xff09;性能优势和使用限制&#xff1a; 二、直达任务通知 API&#xff1a; &#…...

Ubuntu 18.04安装Emacs 26.2问题解决

个人博客地址&#xff1a;Ubuntu 18.04安装Emacs 26.2问题解决 | 一张假钞的真实世界 no X development libraries were found checking for X... no checking for X... true configure: error: You seem to be running X, but no X development libraries were found. You …...