NumPy学习指南:从ndarray到广播,掌握高效数组计算
简介面向NumPy初学者与数据分析入门者这份代码包以Python语言系统讲解NumPy核心用法涵盖数组创建、属性查看、数据类型转换、索引与切片、广播机制、数组排序以及reshape/transpose等关键操作。压缩包共147个文件其中123个为Python脚本另包含readme说明文档、CSV数据样本、MAT数据文件和少量图片素材整体仅65KB体积轻巧便于本地运行与反复练习。目前已有389人学习下载资源内置AAPL、BHP等真实行情数据帮助读者在贴近实际的场景中理解NumPy的批量计算与统计能力。所有示例由浅入深配有清晰注释和输出对比能让读者直观看到一维数组、矩阵运算、维度变换等运行结果快速掌握ndarray的常用方法为后续科学计算与机器学习打下扎实基础。1. 为什么说 NumPy 学习指南代码是数据流的底层泵很多人学 Python 只用了三五天就敢拿纯列表推导式处理数据。可一旦把数据量从几百推到几百万列表推导式立刻露出疲态同样的求和逻辑套进 NumPy 往往只需要一句代码耗时却降了一个数量级。这份 python-NumPy 学习指南代码要做的就是把从「会写 Python」到「会用 ndarray 思考」之间的那段过渡铺成一条能动手复现的路。真正拉开差距的不是语法糖而是数据存放方式和底层循环交给了谁。认真读完并动手敲一遍你会发现它其实覆盖三件事怎么把数据装进 ndarray怎么用索引、切片、广播和聚合把它改造成想要的形状以及当结果偏离预期时如何定位问题而不是靠猜。适合刚啃完 Python 语法、准备进入数据分析或科学计算的读者也适合已经跑过不少脚本、但对视图/拷贝、dtype、广播规则总会踩坑的熟手。我写这份指南时的原则只有一个每个代码块你都能在本机原样跑通每个结论都写明为什么。只读不敲等于白看。2. 先把环境立住Python、虚拟环境与 NumPy 的最小安装路径2.1 为什么每个科学计算项目都绕不开 ndarray选型之前的三个理由先说清楚为什么是 NumPy而不是继续用 Python 原生 list。理由有三条按重要程度排。第一连续内存。ndarray 里的数据在物理上是紧挨着的一块缓冲区元素之间的地址间隔完全固定。CPU 读内存是按缓存行批量加载的连续数据能让缓存命中率高得离谱而 Python list 存的是指针数组每个元素还要再去堆上找对象本体一次遍历等于多次随机访问。数据量越大这个差距越明显。第二dtype 显式声明。你在创建数组时就告诉 NumPy 这块内存里装的是 float64、int32 还是 uint8。类型一旦定死后续所有运算都不需要像 Python 那样每次迭代都去解析对象类型。这也是为什么同样的加法ndarray 的循环可以交给编译器优化而 Python 的循环每个元素都要查一遍类型。第三向量化。NumPy 把逐元素运算封装成 ufunc真正的循环发生在 C 层还能自动利用现代 CPU 的 SIMD 指令做单指令多数据计算。你写a b它不是在 Python 里循环而是在底层一次性处理一整块内存。这三点合在一起决定了 NumPy 不是「更快的 Python」而是一台面向数值数据的泵。你的数据进来它负责把形状、类型、运算路径全部捋顺再快速吐出去。2.2 从零到可运行虚拟环境、pip 安装与验证脚本我建议每个学习项目都用虚拟环境别图省事往系统 Python 里装。用官方自带的 venv 就够了不需要任何额外工具。# 创建虚拟环境名字随意我习惯用 .numpy-guide python3 -m venv .numpy-guide # 激活环境 source .numpy-guide/bin/activate # 先升级 pip避免老版本解析依赖出问题 python -m pip install --upgrade pip # 安装 NumPy python -m pip install numpy安装完成后别急着写代码先跑一条最简验证确认二进制包能正常加载、CPU 指令集没踩到兼容问题python -c import numpy as np; a np.arange(12); print(a.sum())看到66就说明环境已经通了。这里np.arange(12)生成 0 到 11 的整数数组.sum()做聚合求和。如果这条命令报错九成是 pip 装到了别的 Python 版本上先执行which python确认解释器路径在虚拟环境目录里。提示Windows 下激活命令是.numpy-guide\Scripts\activatemacOS/Linux 则是source .numpy-guide/bin/activate。方向别搞反这是新手最常见的第一道坎。2.3 版本选择Python 版本、NumPy 版本与常见兼容组合NumPy 的版本策略属于「向后兼容为主、大版本揭瓦」。我在实际项目里一般按这张表来选你直接照抄就行使用场景建议组合理由纯入门学习Python 3.10 NumPy 1.26.x资料最多几乎所有旧教程都能直接跑新开数据分析项目Python 3.12 NumPy 2.x新 API 更规范性能有提升维护老代码保持原环境不动科学计算生态有大量 C 扩展升级大版本可能牵扯依赖重建装 NumPy 基本不需要手动编译。正常渠道会拉取预编译的 wheel 包导入即用。如果你遇到 pip 在构建源码而非下载 wheel多数情况是 pip 版本太老或 Python 版本不被当前 NumPy 支持。另一个常见现象是同一台机器上同时存在多个 Pythonpip install numpy装到了 A 环境而你的解释器跑的是 B 环境。虚拟环境能根治这个问题所以别跳过 2.2 节的步骤。环境立不住后面所有代码演示都是空中楼阁。3. 用代码拆开 NumPy 的五块拼图创建、索引、切片、广播与聚合3.1 创建数组从 list 到 zeros、arange、random先把数据放进 ndarray创建一个数组是 NumPy 学习的第一块拼图。最基础的方式是np.array它把 Python 的嵌套列表转成 ndarray并自动推断 dtypeimport numpy as np # 列表转数组这里显式指定 float64后面算均值才不会丢精度 a np.array([1, 2, 3], dtypenp.float64) # 固定形状的填充数组 z np.zeros((2, 3), dtypenp.int32) o np.ones((4,)) f np.full((2, 2), 7.0) # 按步长或点数生成 r1 np.arange(0, 1, 0.2) # 浮点步长注意边界 r2 np.linspace(0, 1, 5) # 固定取 5 个点均匀分布 # 随机数推荐用 Generator而不是旧版的 np.random.seed rng np.random.default_rng(42) noise rng.normal(0.0, 1.0, (3, 4)) # 均值 0、标准差 1 的正态噪声np.arange(0, 1, 0.2)在浮点精度下很容易少一个元素。0.2 的二进制表示本身不精确加到最后可能停在 0.9999999 而非 1.0所以结果是五个数而不是六个。需要明确数量时用linspace这种按点数切分的函数更稳妥。随机数部分务必用default_rng它比旧的np.random.seednp.random.rand组合更可控随机状态隔离得也更干净。3.2 索引与切片一维、二维与布尔索引的语义边界索引和切片是改动数组最常见的手段也是新手把数据搞乱的高发区a np.arange(12).reshape(3, 4) # 轴 0 是行轴 1 是列 row a[1] # 取第 1 行返回一维数组 col a[:, 2] # 取第 2 列同样是 1 维 block a[1:, 1:3] # 行 1 到末尾、列 1 到 2 # 布尔索引条件为 True 的位置会被保留 mask a % 2 0 even a[mask] print(row, col, block.shape, even.shape)注意a[1]选中的是行而非列因为 NumPy 默认轴 0 在最外层。布尔索引是一个隐蔽的坑a[mask]返回的even是一维数组原始二维结构直接消失。如果后续还要按行处理就得自己 reshape 或用np.where保持形状。索引结果到底是视图还是拷贝我放在第 5 章讲这里先记住一个现象报错不可怕可怕的是形状悄悄变了。3.3 形状变换与轴的理解reshape、transpose 和 flatten 到底改了什么数据形状是 ndarray 的骨架轴则是形状的解释方式a np.arange(24).reshape(2, 3, 4) # 只改形状不改数据顺序按 C 顺序逐行填充 b a.reshape(4, 6) # 轴交换把轴 0 和轴 1 对调返回的是视图 t a.transpose(1, 0, 2) # flatten 返回拷贝ravel 能返回视图就返回视图 c a.ravel()reshape只要求元素总数不变(2, 3, 4)有 24 个元素(4, 6)也有 24 个所以能直接变。transpose的输入参数是新顺序下各轴的来源(1, 0, 2)意味着新轴 0 来自原轴 1。新手常忽略的一点是transpose返回的是视图数据内存没有复制后续修改可能互相影响。ravel和flatten的差别更明显flatten保证新数组独立ravel可能共用内存改其中一个另一个会跟着变。需要独立副本时别省那个.copy()。3.4 广播机制形状不一致时的自动扩散规则广播堪称 NumPy 最巧妙的机制也是新手最头痛的规则x np.array([[1], [2], [3]]) # 形状 (3, 1) y np.array([10, 20, 30, 40]) # 形状 (4,) z x y # 自动扩展成 (3, 4) print(z.shape) # (3, 4)广播规则只有三条从最后一个维度向前对齐维度大小为 1 或缺失时自动扩展两个维度既不相等又不是 1则无法广播。x的形状是(3, 1)y是(4,)对齐后x的第二个维度是 1于是被拉伸成 4y相当于补成(1, 4)被纵向拉伸成 3。而(3, 3)的数组加(2,)会直接抛错因为尾对齐后 3 和 2 既不等也不含 1。调试广播问题时最有效的动作就是打印两个数组的.shape尾对齐逐位看。3.5 聚合与向量化计算sum、mean、where 与 ufunc 的分工聚合计算把整块数据压成少量数值是统计和机器学习的日常动作data np.arange(1, 101, dtypenp.float64) # 全域统计 print(data.mean(), data.std(), data.min(), data.max()) # 沿轴聚合axis 指明压缩哪个轴 m data.reshape(10, 10) col_mean m.mean(axis0) # 每一列的均值结果长度 10 row_mean m.mean(axis1) # 每一行的均值结果长度 10 # where三目运算的向量化版本选择会保留原形状 clip np.where(data 90, 90, data)axis0压缩的是行所以结果长度等于列数axis1反之。这个方向很多人一开始记反我的记忆法是axis等于几就表示把第几个轴压没。np.where在数据清洗里出镜率极高它不改变输入数组而是返回一份新结果适合做截断、替换异常值这类操作。4. 性能不是玄学ndarray 与纯 Python 列表的差距到底在哪4.1 一次公平的基准timeit 下纯 Python 列表与 ndarray 的差距口说无凭先跑一次可复现的对比import numpy as np from timeit import timeit N 10_000_000 def list_sum(): # range 本身就是惰性序列sum 会在 Python 层逐个累加 return sum(range(N)) def np_sum(): a np.arange(N) return a.sum() # number3 表示每段代码执行 3 次后取平均避免单次抖动 print(timeit(list_sum, number3)) print(timeit(np_sum, number3))我第一次跑这段代码时纯 Python 那行用了数秒NumPy 那行快到让人怀疑是不是没执行。一个数量级的差距是起步数据更复杂时能差出两个数量级。这里比的是「创建 计算」的全过程没有偏袒任何一方因为真实脚本里数组本来就需要创建。4.2 为什么快连续内存、SIMD 与内层循环的退出差距的根源不是某些人以为的「C 语言比 Python 快」这么一句话。更准确地说是三层原因叠加连续内存让数据在物理上聚成一团CPU 缓存一次能捞起一片dtype 固定让每个元素大小一致寻址变成简单的基址加偏移不需要解引用指针sum 的计算循环整个在 C 层执行编译器可以放心做 SIMD 向量化把多组数据一次性塞进寄存器。Python 列表则不同。它每个位置都是 PyObject 指针类型信息分散在各个对象头上两个整数相加要调用三次特殊方法还要处理引用计数。这条路走的人再多也快不起来。所以结论不是「Python 不行」而是「用 Python 写逐元素循环是拿错了工具」。4.3 向量化不是语法糖哪些循环该改写、哪些该留着很多初学者把「向量化」理解成「所有 for 循环都是坏的」这属于矫枉过正# 逐元素操作一定要向量化 def add_one(a): return a 1 # 带提前返回的搜索逻辑Python 循环反而更直接 def first_ge(arr, limit): for v in arr: if v limit: return v return -1a 1这种逐元素算术必须交给 ufunc而 likefirst_ge这种找第一个满足条件的元素NumPy 没有通用内置向量化写法要么绕、要么引入不必要的临时数组代码可读性也跟着崩。正确的判断标准是操作是否天然作用在整块数据上。聚合、逐元素变换、条件筛选这些都是向量化的主战场依赖运行期 break 的控制流用普通循环更稳。4.4 在真实项目里 NumPy 负责什么一张分工表落到真实的数据分析或科学计算项目NumPy 很少单独出现但它承担的角色非常明确任务常用 API该不该自己写循环数据加载与清洗np.loadtxt/np.genfromtxt不要逐元素数值变换四则运算、np.sqrt、np.log不要统计聚合mean/std/percentile不要条件筛选替换np.where/ 布尔索引布尔索引可以循环不推荐依赖前一步状态的递推Python 循环后整体转 ndarray建议保留 Python 循环这份分工表是我做模拟项目 X 时的默认选择能向量化的一定向量化不能向量化的先写清晰循环再用数据整体转 ndarray 收口。性能优化最后做行为正确先保证。把五块拼图拼齐之后你写的数据处理代码会同时具备快和可读两个特征。5. 从编译错误到无声错值我在 NumPy 上学到的五个避坑实录5.1 广播失败形状不一致到底错在哪一步现象np.arange(3)加上np.arange(4)直接抛ValueError提示operands could not be broadcast together with shapes (3,) (4,)。原因广播从最后一个维度对齐3 和 4 既不相等也不含 1无法自动扩展。解决打印.shape逐位对齐需要让数组按行或按列参与运算时先手动补维度例如a.reshape(-1, 1)或b[np.newaxis, :]。记住一句口诀维度为 1 的轴才有资格被拉伸。没有维度的轴NumPy 不会脑补。5.2 切片改了原数组视图与拷贝的经典翻车现象给a做个切片b a[1:3]然后改b[0] 999回头一看a也变了。原因基础切片返回的是视图共享同一块内存。基础索引整数、切片、...一般返回视图高级索引列表、布尔 mask通常返回拷贝。解决需要独立副本时显式调用.copy()。我在写数据处理脚本时的习惯是任何切片对象只要后续会被修改一律先问一句「我要不要改原数组」。拿不准时执行print(np.shares_memory(a, b))输出True就说明两者在同一块内存上。5.3 dtype 陷阱无符号整数减出 255结果还没人报警现象np.array([0, 1, 2], dtypenp.uint8)里做a[0] - a[1]得到 255而不是 -1。原因uint8是无符号 8 位整数取值 0 到 255减法下溢时会绕回最大值而且 NumPy 默认不报溢出错误无声无息地给你一个看似合理的数值。解决运算前显式提高 dtype。常见做法是a.astype(np.int16)或a.astype(np.float64)统计类运算尽量用浮点数组。特别是读图像像素或字节流数据时几乎都要在第一步把 dtype 拉宽否则后面所有统计都建立在错误数据上。5.4 布尔索引的维度收缩一不留神丢掉轴现象二维数组a做a[a 0]你期望得到一个二维结果实际拿到一维数组形状从(m, n)变成(非零元素个数,)。原因布尔索引本身会把你筛选的元素拉平成一维序列因为 True 的位置在逻辑上不再是规则的矩形网格。解决想保留形状就改用np.where(a 0, a, 0)想沿某个轴筛选就用np.any或np.all先把布尔条件缩成轴方向的一维 mask再配合a[mask_row]之类的操作。聚合场景下可以配合keepdimsTrue让结果的形状语义更清晰。5.5 在循环里反复拼接 ndarray内存暴涨现象在 for 循环里用np.concatenate不断累积结果处理几十万行数据时内存直接翻车进程被杀。原因concatenate每次都要申请一块新内存把旧数据完整拷过去再释放旧缓冲区。循环 N 次总拷贝量是 O(N²)GC 跟不上就爆了。解决收集阶段用普通 Python list循环结束后一次性np.concatenate(list_of_arrays)。或者干脆预分配一块足够大的输出数组每次用切片写入不产生中间拷贝。这条血泪经验几乎每个写过批量处理脚本的人都遇到过提前规避省一整晚调试时间。6. 让学习指南长出肌肉用测试断言固定你对代码的理解6.1 把目标函数先写出来再给自己上断言看完这份指南你会写不少小函数。但如果只跑一次、看一眼输出就关掉理解是留不住的。我习惯给每个关键函数补上断言import numpy as np def zscore(x): # 对每组数据做标准化减去均值除以标准差 mu x.mean() sd x.std() return (x - mu) / sd # 断言正确的参考值atol 表示绝对误差容忍范围 np.testing.assert_allclose( zscore(np.array([1.0, 2.0, 3.0])), np.array([-1.0, 0.0, 1.0]), atol1e-12, ) print(zscore 通过验证)assert_allclose是浮点比较的正确打开方式。直接用比浮点数你会被精度抖动反复教育。atol控制绝对容差rtol控制相对容差普通计算用atol1e-12足够工程场景放宽到1e-8也很常见。每次改完函数就重新跑断言比盯着打印结果猜要可靠得多。6.2 三个值得固化的小习惯第一拿到不确定的数组先打印.shape和.dtype两个属性就能回答大部分「结果为什么这样」的问题。第二修改任何切片前跑一句np.shares_memory确认有没有牵连原数组。第三把本指南里的示例改造成你自己的小工具函数比如数据截断、按列标准化、构造随机训练集每个都配上断言。我现在拿到任何一批新数据都会先写下三行验证脚本导入、断言、基准。行为固定了才谈性能优化。这份 NumPy 学习指南代码里最值钱的不是某个 API而是「先写断言再动手改」的习惯。踩过的坑都是资源希望帮到你。本文还有配套的精品资源点击获取

相关新闻

漂亮通用界面:设计令牌与组件化的多项目UI工程路线

漂亮通用界面:设计令牌与组件化的多项目UI工程路线

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 1:13:56 阅读更多 →
C#自动更新程序源码:客户端软件安全升级的架构与实现要点

C#自动更新程序源码:客户端软件安全升级的架构与实现要点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 1:12:55 阅读更多 →
第 26 章 关键帧动画原理与 Animation 类

第 26 章 关键帧动画原理与 Animation 类

本章实测环境:Babylon.js 9.30.0、Vite 8.3.4、TypeScript 5.9.3、Windows 11 Chrome(WebGL2 后端)。 本章代码:src/chapters/ch26-keyframe-animation.ts,运行后打开 http://localhost:18000/?ch26。 图中所有"…

2026/10/15 1:12:55 阅读更多 →

最新新闻

Start Bootstrap 主题 One Page Wonder 详解:基于 Bootstrap 4 快速构建单页网站

Start Bootstrap 主题 One Page Wonder 详解:基于 Bootstrap 4 快速构建单页网站

前端文档 【免费下载链接】startbootstrap A library of free and open source Bootstrap themes and templates 项目地址: https://gitcode.com/gh_mirrors/st/startbootstrap 点击查看 免费下载 One Page Wonder 是 Start Bootstrap 开源仓库中的一款经典单页主题…

2026/10/15 1:56:09 阅读更多 →
中国蚁剑 AntSword 版本演进与技术内核解析:从 2.1.16 安全更新到连接类型架构

中国蚁剑 AntSword 版本演进与技术内核解析:从 2.1.16 安全更新到连接类型架构

网络安全渗透测试桌面应用 【免费下载链接】antSword 中国蚁剑是一款跨平台的开源网站管理工具。AntSword is a cross-platform website management toolkit. 项目地址: https://gitcode.com/gh_mirrors/an/antSword 点击查看 免费下载 本文以中国蚁剑(…

2026/10/15 1:56:09 阅读更多 →
Spring Data Multi-store 实战:JPA 与 MongoDB 共存时仓库的严格自动分配机制

Spring Data Multi-store 实战:JPA 与 MongoDB 共存时仓库的严格自动分配机制

示例工程 【免费下载链接】spring-data-examples Spring Data Example Projects 项目地址: https://gitcode.com/gh_mirrors/sp/spring-data-examples 点击查看 免费下载 本指南以 spring-data-examples 仓库中的 multi-store 示例为骨架,讲解在一个应用…

2026/10/15 1:56:09 阅读更多 →
QGroundControl GeoMap 引擎深度解析:基于 Qt Quick 3D 的 2D/3D 高程地形地图实现

QGroundControl GeoMap 引擎深度解析:基于 Qt Quick 3D 的 2D/3D 高程地形地图实现

无人机智能硬件 【免费下载链接】qgroundcontrol Cross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows) 项目地址: https://gitcode.com/gh_mirrors/qg/qgroundcontrol 点击查看 免费下载 导读 GeoMap 是 QGroundControl&am…

2026/10/15 1:56:09 阅读更多 →
蓝鲸配置平台 bk-cmdb 开源社区参与指南:从 Issue 提报到 Pull Request 合并的完整贡献流程

蓝鲸配置平台 bk-cmdb 开源社区参与指南:从 Issue 提报到 Pull Request 合并的完整贡献流程

后端企业应用运维 【免费下载链接】bk-cmdb 蓝鲸智云配置平台(BlueKing CMDB) 项目地址: https://gitcode.com/gh_mirrors/bk/bk-cmdb 点击查看 免费下载 蓝鲸配置平台(BlueKing CMDB,bk-cmdb)是蓝鲸智云开源的一款企业级配置管理…

2026/10/15 1:56:09 阅读更多 →
仓颉 cangjie_runtime std.convert 转换接口详解:Formattable、Parsable 与 RadixConvertible

仓颉 cangjie_runtime std.convert 转换接口详解:Formattable、Parsable 与 RadixConvertible

编程语言语言运行时标准库垃圾回收并发编程 【免费下载链接】cangjie_runtime 仓颉编程语言运行时与标准库。 项目地址: https://gitcode.com/Cangjie/cangjie_runtime 点击查看 免费下载 本文围绕仓颉标准库 std.convert 包中的三个核心接口展开:Forma…

2026/10/15 1:55:08 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →