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

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.18 逻辑运算引擎:数组条件判断的智能法则

在这里插入图片描述

1.18 逻辑运算引擎:数组条件判断的智能法则

1.18.1 目录

逻辑运算引擎:数组条件判断的智能法则
引言
短路逻辑的向量化替代方案
复合条件表达式的优化编写
掩码操作在图像分割中的应用
多条件并行评估的性能测试
总结
参考文献

1.18.2 短路逻辑的向量化替代方案

在Python中,短路逻辑(short-circuit logic)是一种常用的逻辑运算方式,但在NumPy数组中使用短路逻辑可能会导致性能问题。向量化操作可以提供更高效的解决方案。

标量条件
广播机制
数组条件
逻辑运算
布尔掩码
复合条件
按位与
按位或
结果掩码
数据筛选
1.18.2.1 短路逻辑的原理

短路逻辑的基本原理是:在逻辑表达式中,如果前一个条件的评估结果已经可以确定最终结果,则不会继续评估后续的条件。例如,“and”运算中,如果第一个条件为False,则后续条件不会被评估。

1.18.2.2 向量化逻辑运算的实现

NumPy提供了向量化逻辑运算的方法,可以在整个数组上进行高效的逻辑运算。

1.18.2.2.1 逻辑运算的广播规则图示
NumPy数组逻辑运算
广播规则
形状对齐
逐元素运算
结果数组
1.18.2.2.2 代码示例
import numpy as np# 创建两个NumPy数组
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([3, 4, 5, 6, 7])# 使用向量化逻辑运算
result = np.logical_and(array1 > 2, array2 < 6)  # 条件判断# 打印结果
print(result)  # 输出: [False False  True False False]

1.18.3 复合条件表达式的优化编写

在实际应用中,经常需要编写多个条件的复合表达式。优化复合条件表达式可以显著提高代码的可读性和性能。

1.18.3.1 复合条件表达式的常见问题
  • 可读性问题:多个条件嵌套会导致代码难以阅读。
  • 性能问题:逐元素判断条件会导致计算效率低下。
1.18.3.2 优化方法
  • 使用布尔数组:通过布尔数组进行条件判断,提高代码的可读性和性能。
  • 使用numexpr:加速复杂表达式的计算。
1.18.3.2.1 使用布尔数组
import numpy as np# 创建NumPy数组
data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])# 生成布尔数组
condition1 = data > 3
condition2 = data < 8# 使用布尔数组进行复合条件判断
result = np.logical_and(condition1, condition2)# 打印结果
print(result)  # 输出: [False False False  True  True  True  True False False False]
1.18.3.2.2 使用numexpr加速复杂表达式
import numpy as np
import numexpr as ne# 创建NumPy数组
data1 = np.random.randn(1000000)
data2 = np.random.randn(1000000)# 生成复合条件表达式
result = ne.evaluate('(data1 > 2) & (data2 < 6)')  # 使用numexpr加速# 打印结果
print(result)

1.18.4 掩码操作在图像分割中的应用

在图像处理中,掩码操作是一种常用的方法,用于提取图像中的感兴趣区域(ROI)。

1.18.4.1 医学图像ROI提取完整案例

假设我们有一个医学图像,需要提取其中的病变区域。我们可以通过生成掩码并应用掩码来实现这一点。

1.18.4.1.1 读取图像
import numpy as np
import matplotlib.pyplot as plt
from skimage import io, color# 读取医学图像
image = io.imread('medical_image.jpg')
image_gray = color.rgb2gray(image)  # 转换为灰度图像# 绘制原始图像
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.imshow(image, cmap='gray')
plt.title('原始图像')
1.18.4.1.2 生成掩码
# 生成掩码条件
mask = (image_gray > 0.2) & (image_gray < 0.8)# 绘制掩码
plt.subplot(1, 2, 2)
plt.imshow(mask, cmap='gray')
plt.title('掩码')
plt.show()
1.18.4.1.3 应用掩码
# 应用掩码提取ROI
image_roi = np.where(mask, image_gray, 0)# 绘制ROI图像
plt.figure(figsize=(6, 6))
plt.imshow(image_roi, cmap='gray')
plt.title('ROI图像')
plt.show()

1.18.5 多条件并行评估的性能测试

多条件并行评估可以显著提高代码的执行效率。我们将通过一个性能测试来验证这一点。

1.18.5.1 测试设置
  • 数据规模:1000万数据点
  • 测试方法:使用NumPy的向量化逻辑运算和逐元素逻辑运算进行对比测试。
1.18.5.1.1 代码示例
import numpy as np
import time# 生成大规模数据
data = np.random.randn(10000000)# 逐元素逻辑运算
def sequential_evaluation(data):result = []for value in data:if value > 0.5 and value < 1.5:result.append(True)else:result.append(False)return np.array(result)# 向量化逻辑运算
def vectorized_evaluation(data):return (data > 0.5) & (data < 1.5)# 测试逐元素逻辑运算
start_time = time.time()
result_sequential = sequential_evaluation(data)
end_time = time.time()
time_sequential = end_time - start_time
print(f"逐元素逻辑运算时间: {time_sequential:.6f}秒")# 测试向量化逻辑运算
start_time = time.time()
result_vectorized = vectorized_evaluation(data)
end_time = time.time()
time_vectorized = end_time - start_time
print(f"向量化逻辑运算时间: {time_vectorized:.6f}秒")# 生成结果图
import matplotlib.pyplot as pltplt.bar(['逐元素逻辑运算', '向量化逻辑运算'], [time_sequential, time_vectorized])
plt.xlabel('方法')
plt.ylabel('时间(秒)')
plt.title('多条件并行评估的性能对比')
plt.show()

1.18.6 逻辑运算的GPU加速方案

对于大规模数据的逻辑运算,可以使用GPU进行加速。我们将介绍如何使用CuPy库在GPU上进行逻辑运算。

1.18.6.1 CuPy库简介

CuPy是一个兼容NumPy的库,支持在GPU上进行高效的数组操作。

1.18.6.1.1 代码示例
import numpy as np
import cupy as cp
import time# 生成大规模数据
data = np.random.randn(10000000)# 将数据转移到GPU
gpu_data = cp.array(data)# 逐元素逻辑运算
def sequential_evaluation(data):result = []for value in data:if value > 0.5 and value < 1.5:result.append(True)else:result.append(False)return np.array(result)# 向量化逻辑运算
def vectorized_evaluation(data):return (data > 0.5) & (data < 1.5)# GPU向量化逻辑运算
def gpu_vectorized_evaluation(gpu_data):return (gpu_data > 0.5) & (gpu_data < 1.5)# 测试逐元素逻辑运算
start_time = time.time()
result_sequential = sequential_evaluation(data)
end_time = time.time()
time_sequential = end_time - start_time
print(f"逐元素逻辑运算时间: {time_sequential:.6f}秒")# 测试NumPy向量化逻辑运算
start_time = time.time()
result_vectorized = vectorized_evaluation(data)
end_time = time.time()
time_vectorized = end_time - start_time
print(f"NumPy向量化逻辑运算时间: {time_vectorized:.6f}秒")# 测试CuPy向量化逻辑运算
start_time = time.time()
result_gpu_vectorized = gpu_vectorized_evaluation(gpu_data)
end_time = time.time()
time_gpu_vectorized = end_time - start_time
print(f"CuPy向量化逻辑运算时间: {time_gpu_vectorized:.6f}秒")# 生成结果图
import matplotlib.pyplot as pltplt.bar(['逐元素逻辑运算', 'NumPy向量化逻辑运算', 'CuPy向量化逻辑运算'], [time_sequential, time_vectorized, time_gpu_vectorized])
plt.xlabel('方法')
plt.ylabel('时间(秒)')
plt.title('逻辑运算的性能对比')
plt.show()

1.18.7 总结

本文详细介绍了NumPy数组条件判断的智能法则,包括短路逻辑的向量化替代方案、复合条件表达式的优化编写、掩码操作在图像分割中的应用、多条件并行评估的性能测试以及逻辑运算的GPU加速方案。通过这些内容,希望读者可以更好地理解和应用NumPy的逻辑运算功能,从而在实际项目中提高代码效率。

1.18.8 参考文献

参考资料名链接
NumPy官方文档https://numpy.org/doc/stable/
Matplotlib官方文档https://matplotlib.org/
Scikit-Image官方文档https://scikit-image.org/docs/stable/
numexpr官方文档https://numexpr.readthedocs.io/en/latest/
CuPy官方文档https://docs.cupy.dev/en/latest/
短路逻辑与向量化操作https://eli.thegreenplace.net/2015/understanding-short-circuiting-with-and-and-or-in-python/
布尔数组与条件判断https://numpy.org/doc/stable/user/basics.indexing.html#boolean-or-mask-index-arrays
图像处理与ROI提取https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/py_histogram_equalization.html
NumPy性能优化https://realpython.com/faster-numpy-arrays-cython/
CUDA编程入门https://developer.nvidia.com/blog/getting-started-cuda-python/
GPU加速的Python库https://www.tensorflow.org/install/gpu
数据可视化https://seaborn.pydata.org/
数据科学手册https://jakevdp.github.io/PythonDataScienceHandbook/
医学图像处理https://pyradiomics.readthedocs.io/en/latest/
并行计算https://docs.ray.io/en/latest/

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

相关文章:

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.18 逻辑运算引擎:数组条件判断的智能法则

1.18 逻辑运算引擎&#xff1a;数组条件判断的智能法则 1.18.1 目录 #mermaid-svg-QAFjJvNdJ5P4IVbV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-QAFjJvNdJ5P4IVbV .error-icon{fill:#552222;}#mermaid-svg-QAF…...

C语言实现库函数strlen

size_t是 unsigned int fgets会读入\n&#xff0c;用strcspn函数除去 assert判读指针是否为空指针&#xff0c;使用前要引头文件<assert.h> #include <stdio.h> #include <assert.h> size_t mystrlen(const char* str) {assert(str);size_t count 0;while …...

18 大量数据的异步查询方案

在分布式的应用中分库分表大家都已经熟知了。如果我们的程序中需要做一个模糊查询&#xff0c;那就涉及到跨库搜索的情况&#xff0c;这个时候需要看中间件能不能支持跨库求交集的功能。比如mycat就不支持跨库查询&#xff0c;当然现在mycat也渐渐被摒弃了(没有处理笛卡尔交集的…...

FastExcel使用详解

文章目录 FastExcel使用详解一、引言二、环境准备与依赖引入1、Maven 依赖引入2、实体类定义 三、核心操作&#xff1a;读写 Excel1、读取 Excel1.1 自定义监听器1.2 读取文件 2、写入 Excel2.1 简单写入2.2 模板写入 四、Spring Boot 集成示例1、文件上传&#xff08;导入&…...

深度学习python基础(第四节) 元组、字符串、集合和字典

本节主要介绍元组,字符串,集合,字典的基本语法定义,以及相关的操作. 元组的定义和操作 元组一旦定义完成就不可修改. """ # 定义元组字面量 (元素&#xff0c;元素&#xff0c;....,元素) # 元素可以不同的数据类型# 定义元组变量 变量名称 (元素&#xff0c;…...

QT串口通信,实现单个温湿度传感器数据的采集

1、硬件设备 RS485中继器(一进二出),usb转485模块、电源等等 => 累计115元左右。 2、核心代码 #include "MainWindow.h" #include "ui_MainWindow.h"MainWindow::...

绘制决策树尝试3

目录 代码解读AI 随机状态 种子 定义决策树回归模型 tree的decision regressor fit 还可用来预测 export 效果图 我的X只有一个特征 为何这么多分支 &#xff1f;&#xff1f;&#xff1f; 这是CART回归 CART回归 为什么说代码是CART回归&#xff1f; 不是所有的决…...

【逻辑学导论第15版】A. 推理

识别下列语段中的前提与结论。有些前提确实支持结论&#xff0c;有些并不支持。请注意&#xff0c;前提可能直接或间接地支持结论&#xff0c;而简单的语段也可能包含不止一个论证。 例题&#xff1a; 1.管理得当的民兵组织对于一个自由国家的安全是必需的&#xff0c;因而人民…...

qt-C++笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphicsRectItem的区别

qt-C笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphicsRectItem的区别 code review! 参考笔记 1.qt-C笔记之重写QGraphicsItem的paint方法(自定义QGraphicsItem) 文章目录 qt-C笔记之QLine、QRect、QPainterPath、和自定义QGraphicsPathItem、QGraphic…...

[Java]泛型(二)泛型方法

1.定义 在 Java 中&#xff0c;泛型方法是指在方法声明中使用泛型类型参数的一种方法。它使得方法能够处理不同类型的对象&#xff0c;而不需要为每种类型写多个方法&#xff0c;从而提高代码的重用性。 泛型方法与泛型类不同&#xff0c;泛型方法的类型参数仅仅存在于方法的…...

ProfibusDP主机与从机交互

ProfibusDP 主机SD2索要数据下发&#xff1a;68 08 F7 68 01 02 03 21 05 06 07 08 1C 1668&#xff1a;SD2 08&#xff1a;LE F7&#xff1a;LEr 68&#xff1a;SD2 01:目的地址 02&#xff1a;源地址 03:FC_CYCLIC_DATA_EXCHANGE功能码 21&#xff1a;数据地址 05,06,07,08&a…...

jQuery小游戏(二)

jQuery小游戏&#xff08;二&#xff09; 今天是新年的第二天&#xff0c;本人在这里祝大家&#xff0c;新年快乐&#xff0c;万事胜意&#x1f495; 紧接jQuery小游戏&#xff08;一&#xff09;的内容&#xff0c;我们开始继续往下咯&#x1f61c; 游戏中使用到的方法 key…...

【MQ】如何保证消息队列的高可用?

RocketMQ NameServer集群部署 Broker做了集群部署 主从模式 类型&#xff1a;同步复制、异步复制 主节点返回消息给客户端的时候是否需要同步从节点 Dledger&#xff1a;要求至少消息复制到半数以上的节点之后&#xff0c;才给客户端返回写入成功 slave定时从master同步数据…...

简易计算器(c++ 实现)

前言 本文将用 c 实现一个终端计算器&#xff1a; 能进行加减乘除、取余乘方运算读取命令行输入&#xff0c;输出计算结果当输入表达式存在语法错误时&#xff0c;报告错误&#xff0c;但程序应能继续运行当输出 ‘q’ 时&#xff0c;退出计算器 【简单演示】 【源码位置】…...

AI大模型开发原理篇-4:神经概率语言模型NPLM

神经概率语言模型&#xff08;NPLM&#xff09;概述 神经概率语言模型&#xff08;Neural Probabilistic Language Model, NPLM&#xff09; 是一种基于神经网络的语言建模方法&#xff0c;它将传统的语言模型和神经网络结合在一起&#xff0c;能够更好地捕捉语言中的复杂规律…...

SpringBoot 基础特性

SpringBoot 基础特性 SpringApplication 相关特性 自定义 banner 在主配置文件写 banner.txt 的地址 #也可以不写默认路径就是 banner.txt #从类路径下找 banner #类路径就是 编译的target 目录 还有导入的第三方类路径。 spring.banner.locationclasspath:banner.txt#控制…...

网站快速收录:提高页面加载速度的重要性

本文转自&#xff1a;百万收录网 原文链接&#xff1a;https://www.baiwanshoulu.com/32.html 网站快速收录中&#xff0c;提高页面加载速度具有极其重要的意义。以下从多个方面详细阐述其重要性&#xff1a; 一、提升用户体验 减少用户等待时间&#xff1a;页面加载速度直接…...

如何使用formlinker,重构微软表单创建的数字生产力法则?

仅需三步&#xff1a;上传文件-下载文件-导入文件到微软表单 凌晨两点的格式炼狱&#xff1a;被浪费的300万小时人类创造力 剑桥大学的实验室曾捕捉到一组震撼数据&#xff1a;全球教育工作者每年花在调整试题格式上的时间&#xff0c;足够建造3座迪拜哈利法塔。当北京某高校的…...

从零搭建一个Vue3 + Typescript的脚手架——day3

3.项目拓展配置 (1).配置Pinia Pinia简介 Pinia 是 Vue.js 3 的状态管理库&#xff0c;它是一个轻量级、灵活、易于使用的状态管理库。Pinia 是 Vue.js 3 的官方状态管理库&#xff0c;它可以帮助开发者更好地管理应用的状态。Pinia 是一个开源项目&#xff0c;它有丰富的文档…...

Three.js实战项目02:vue3+three.js实现汽车展厅项目

文章目录 实战项目02项目预览项目创建初始化项目模型加载与展厅灯光加载汽车模型设置灯光材质设置完整项目下载实战项目02 项目预览 完整项目效果: 项目创建 创建项目: pnpm create vue安装包: pnpm add three@0.153.0 pnpm add gsap初始化项目 修改App.js代码&#x…...

Linux——网络(tcp)

文章目录 目录 文章目录 前言 一、TCP逻辑 1. 面向连接 三次握手&#xff08;建立连接&#xff09; 四次挥手&#xff08;关闭连接&#xff09; 2. 可靠性 3. 流量控制 4. 拥塞控制 5. 基于字节流 6. 全双工通信 7. 状态机 8. TCP头部结构 9. TCP的应用场景 二、编写tcp代码函数…...

Ubuntu Server 安装 XFCE4桌面

Ubuntu Server没有桌面环境&#xff0c;一些软件有桌面环境使用起来才更加方便&#xff0c;所以我尝试安装桌面环境。常用的桌面环境有&#xff1a;GNOME、KDE Plasma、XFCE4等。这里我选择安装XFCE4桌面环境&#xff0c;主要因为它是一个极轻量级的桌面环境&#xff0c;适合内…...

分享|通过Self-Instruct框架将语言模型与自生成指令对齐

结论 在大型 “指令调整” 语言模型依赖的人类编写指令数据存在数量、多样性和创造性局限&#xff0c; 从而阻碍模型通用性的背景下&#xff0c; Self - Instruct 框架&#xff0c; 通过 自动生成 并 筛选指令数据 微调预训练语言模型&#xff0c; 有效提升了其指令遵循能…...

指针空值——nullptr(C++11)——提升指针安全性的利器

C11引入的nullptr是对指针空值的正式支持&#xff0c;它提供了比传统NULL指针更加安全和明确的指针空值表示方式。在C语言中&#xff0c;指针操作是非常基础且常见的&#xff0c;而如何安全地处理指针空值&#xff0c;一直是开发者关注的重要问题。本文将详细讲解nullptr的引入…...

C++游戏开发

C 是游戏开发中广泛使用的编程语言&#xff0c;因其高性能、灵活性和对硬件的直接控制能力而备受青睐。以下是 C 游戏开发的一些关键点&#xff1a; 1. 游戏引擎 Unreal Engine&#xff1a;使用 C 作为主要编程语言&#xff0c;适合开发高质量 3D 游戏。Unity&#xff1a;虽然…...

【Docker】ubuntu中 Docker的使用

之前记录了 docker的安装 【环境配置】ubuntu中 Docker的安装&#xff1b; 本篇博客记录Dockerfile的示例&#xff0c;docker 的使用&#xff0c;包括镜像的构建、容器的启动、docker compose的使用等。   当安装好后&#xff0c;可查看docker的基本信息 docker info ## 查…...

Linux C openssl aes-128-cbc demo

openssl 各版本下载 https://openssl-library.org/source/old/index.html#include <stdio.h> #include <string.h> #include <openssl/aes.h> #include <openssl/rand.h> #include <openssl/evp.h>#define AES_KEY_BITS 128 #define GCM_IV_SIZ…...

【卫星通信】链路预算方法

本文介绍卫星通信中的链路预算方法&#xff0c;应该也适用于地面通信场景。 更多内容请关注gzh【通信Online】 文章目录 下行链路预算卫星侧参数信道参数用户侧参数 上行链路预算链路预算计算示例 下行链路预算 卫星侧参数 令卫星侧天线数为 M t M_t Mt​&#xff0c;每根天线…...

【Elasticsearch】 索引模板 ignore_missing_component_templates

解释 ignore_missing_component_templates 配置 在Elasticsearch中&#xff0c;ignore_missing_component_templates 是一个配置选项&#xff0c;用于处理索引模板中引用的组件模板可能不存在的情况。当您创建一个索引模板时&#xff0c;可以指定一个或多个组件模板&#xff0…...

Github 2025-01-30 Go开源项目日报 Top10

根据Github Trendings的统计,今日(2025-01-30统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10Ollama: 本地大型语言模型设置与运行 创建周期:248 天开发语言:Go协议类型:MIT LicenseStar数量:42421 个Fork数量:2724 次关注人…...

Linux 下注册分析(4)

系列文章目录 Linux 设备树 Linux 下注册分析&#xff08;1&#xff09; Linux 下注册分析&#xff08;2&#xff09; Linux 下注册分析&#xff08;3&#xff09; Linux 下注册分析&#xff08;4&#xff09; 文章目录 系列文章目录1、device_create简介device_createdevice_c…...

PhotoShop中JSX编辑器安装

1.使用ExtendScript Tookit CC编辑 1.安装 打开CEP Resource链接&#xff1a; CEP-Resources/ExtendScript-Toolkit at master Adobe-CEP/CEP-Resources (github.com) 将文件clone到本地或者下载到本地 点击AdobeExtendScriptToolKit_4_Ls22.exe安装&#xff0c;根据弹出的…...

目前市场主流的AI PC对于大模型本地部署的支持情况分析-Deepseek

以下是目前市场主流AI PC对**大模型本地部署支持情况**的综合分析&#xff0c;结合硬件能力、软件生态及厂商动态进行总结&#xff1a; --- ### **一、硬件配置与算力支持** 1. **核心处理器架构** - **异构计算方案&#xff08;CPUGPUNPU&#xff09;**&#xff1a;主流…...

51单片机开发:独立键盘实验

实验目的&#xff1a;按下键盘1时&#xff0c;点亮LED灯1。 键盘原理图如下图所示&#xff0c;可见&#xff0c;由于接GND&#xff0c;当键盘按下时&#xff0c;P3相应的端口为低电平。 键盘按下时会出现抖动&#xff0c;时间通常为5-10ms&#xff0c;代码中通过延时函数delay…...

微服务网关鉴权之sa-token

目录 前言 项目描述 使用技术 项目结构 要点 实现 前期准备 依赖准备 统一依赖版本 模块依赖 配置文件准备 登录准备 网关配置token解析拦截器 网关集成sa-token 配置sa-token接口鉴权 配置satoken权限、角色获取 通用模块配置用户拦截器 api模块配置feign…...

STM32 TIM输入捕获 测量频率

输入捕获简介&#xff1a; IC&#xff08;Input Capture&#xff09;输入捕获 输入捕获模式下&#xff0c;当通道输入引脚出现指定电平跳变时&#xff0c;当前CNT的值将被锁存到CCR中&#xff0c;可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数 每个高级定时器…...

python | OpenCV小记(一):cv2.imread(f) 读取图像操作(待更新)

python | OpenCV小记&#xff08;一&#xff09;&#xff1a;cv2.imread&#xff08;f&#xff09;读取图像操作 1. 为什么 [:, :, 0] 提取的是第一个通道&#xff08;B 通道&#xff09;&#xff1f;OpenCV 的通道存储格式索引操作 [:, :, 0] 的解释常见误解 1. 为什么 [:, :,…...

解析静态链接

文章目录 静态链接空间与地址分配相似段合并虚拟地址分配符号地址确定符号解析与重定位链接器优化重复代码消除函数链接级别静态库静态链接优缺点静态链接 一组目标文件经过链接器链接后形成的文件即可执行文件,如果没有动态库的加入,那么这个可执行文件被加载后无需再进行重…...

Ollama 运行从 ModelScope 下载的 GGUF 格式的模型

本文系统环境 Windows 10 Ollama 0.5.7 Ollama 是什么&#xff1f; Ollama 可以让你快速集成和部署本地 AI 模型。它支持各种不同的 AI 模型&#xff0c;并允许用户通过简单的 API 进行调用 Ollama 的安装 Ollama 官网 有其下载及安装方法&#xff0c;非常简便 但如果希…...

【2025年最新版】Java JDK安装、环境配置教程 (图文非常详细)

文章目录 【2025年最新版】Java JDK安装、环境配置教程 &#xff08;图文非常详细&#xff09;1. JDK介绍2. 下载 JDK3. 安装 JDK4. 配置环境变量5. 验证安装6. 创建并测试简单的 Java 程序6.1 创建 Java 程序&#xff1a;6.2 编译和运行程序&#xff1a;6.3 在显示或更改文件的…...

探索性测试与自动化测试的结合

随着软件开发周期的不断缩短和质量要求的不断提高&#xff0c;测试行业正在经历一场深刻的变革。自动化测试因其高效性和可重复性成为测试团队必不可少的工具&#xff0c;而探索性测试&#xff08;Exploratory Testing, ET&#xff09;则因其灵活性和创意性在面对复杂、动态变化…...

我是如何写作的?

以前是如何写作的 从小学三年级开始学写作文&#xff0c;看的作文书&#xff0c;老师布置作文题目&#xff0c;内容我都是自己写的。那时会积累一些好词&#xff0c;听到什么好词就记住了。并没有去观察什么&#xff0c;也没有好好花心思在写作上。总觉得我写的作文与真正好的…...

智慧园区管理系统为企业提供高效运作与风险控制的智能化解决方案

内容概要 快鲸智慧园区管理系统&#xff0c;作为一款备受欢迎的智能化管理解决方案&#xff0c;致力于为企业提供高效的运作效率与风险控制优化。具体来说&#xff0c;这套系统非常适用于工业园、产业园、物流园、写字楼及公寓等多种园区和商办场所。它通过数字化与智能化的手…...

INCOSE需求编写指南-附录 B: 首字母缩略词和缩写

附录 Appendix B: 首字母缩略词和缩写ACRONYMS AND ABBREVIATIONS AD 难易程度的进阶 Advancement Degree of Difficulty AI 人工智能 Artificial Intelligence CM 配置管理 Configuration Management ConOps 运作理念 Concept of Operations COTS 商业现货 Comme…...

VS2008 - debug版 - 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。

文章目录 VS2008 - debug版 - 由于应用程序配置不正确&#xff0c;应用程序未能启动。重新安装应用程序可能会纠正这个问题。概述笔记VS2008安装环境VS2008测试程序设置默认报错的情况措施1措施2备注 - exe清单文件的问题是否使用静态库?_BIND_TO_CURRENT_VCLIBS_VERSION的出处…...

Docker容器数据恢复

Docker容器数据恢复 1 创建mongo数据库时未挂载数据到宿主机2 查找数据卷位置3 将容器在宿主机上的数据复制到指定目录下4 修改docker-compose并挂载数据&#xff08;注意端口&#xff09;5 重新运行新容器 以mongodb8.0.3为例。 1 创建mongo数据库时未挂载数据到宿主机 versi…...

翼星求生服务器搭建【Icarus Dedicated Server For Linux】

一、前言 本次搭建的服务器为Steam平台一款名为Icarus的沙盒、生存、建造游戏,由于官方只提供了Windows版本服务器导致很多热爱Linux的小伙伴无法释怀,众所周知Linux才是专业服务器的唯一准则。虽然Github上已经有大佬制作了容器版本但是容终究不够完美,毕竟容器无法与原生L…...

如何在data.table中处理缺失值

&#x1f4ca;&#x1f4bb;【R语言进阶】轻松搞定缺失值&#xff0c;让数据清洗更高效&#xff01; &#x1f44b; 大家好呀&#xff01;今天我要和大家分享一个超实用的R语言技巧——如何在data.table中处理缺失值&#xff0c;并且提供了一个自定义函数calculate_missing_va…...

react中如何获取dom元素

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

引入@Inject的依赖包

maven引入Inject的依赖包 在 Maven 项目中引入 Inject 注解所需的依赖包同样取决于你打算使用的依赖注入框架。以下是一些常见框架及其 Maven 依赖配置的示例&#xff1a; 1. Google Guice 如果你打算使用 Google Guice&#xff0c;你需要在 pom.xml 文件中添加 Guice 的依赖…...