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

numpy np.pad介绍

numpy.pad 是 NumPy 中用于对数组进行边界填充(padding)的函数。可以通过它对数组的各个维度进行填充操作,在数组的边缘添加额外的元素。np.pad 提供了多种不同的填充方式,例如用常数填充、镜像填充、边界填充等。

基本用法

numpy.pad(array, pad_width, mode='constant', **kwargs)
参数说明
  • array: 需要填充的数组。
  • pad_width: 表示在每个维度上的填充宽度。可以是单个整数,表示所有维度都填充相同的宽度,也可以是不同维度分别指定的宽度(如 ((before_1, after_1), (before_2, after_2)))。
  • mode: 填充方式,常用模式包括:
    • 'constant':常数填充(默认模式),可以通过 constant_values 指定填充值。
    • 'edge':用边界值填充。
    • 'reflect':反射填充,不包含边界。
    • 'symmetric':对称填充,包含边界。
    • 'wrap':循环填充。
    • 'linear_ramp':线性填充,填充的值按照线性递减或递增。
    • 'maximum''minimum':用最大值或最小值填充。
    • 'mean''median':用均值或中值填充。
  • constant_values: 在 mode='constant' 时,指定填充值。可以为单一常数或每个维度不同的常数值。

常见模式示例

假设有一个二维数组 arr

import numpy as np

arr = np.array([[1, 2], [3, 4]])
1. constant 模式(常数填充)
padded_arr = np.pad(arr, pad_width=1, mode='constant', constant_values=0)
print(padded_arr)

这里 pad_width=1 表示在每一维度的两端都填充 1 行/列的 0。

2. edge 模式(边界填充)
padded_arr = np.pad(arr, pad_width=1, mode='edge')
print(padded_arr)

这里 pad_width=1,使用数组的边界值进行填充。

3. reflect 模式(反射填充)
padded_arr = np.pad(arr, pad_width=1, mode='reflect')
print(padded_arr)

使用数组的反射值进行填充,不包含边界值。

4. symmetric 模式(对称填充)
padded_arr = np.pad(arr, pad_width=1, mode='symmetric')
print(padded_arr)

这里填充是对称的,包含边界值。

5. wrap 模式(循环填充)
padded_arr = np.pad(arr, pad_width=1, mode='wrap')
print(padded_arr)
  • 数组像一个圆环一样循环填充。
6. 指定不同维度的填充宽度

可以为每个维度指定不同的填充宽度,例如:

padded_arr = np.pad(arr, pad_width=((1, 2), (2, 3)), mode='constant', constant_values=9)
print(padded_arr)

这里在第一个维度上填充 1 行在前面,2 行在后面;第二个维度上填充 2 列在前面,3 列在后面。

总结

  • np.pad 用于在数组的各个维度上进行填充,可以指定多种不同的填充模式。
  • 可以使用 pad_width 控制每个维度的填充宽度,mode 参数控制填充的方式,constant_values 可以控制填充的具体值(仅在 mode='constant' 时有效)。
  • 使用 np.pad 可以方便地对多维数组进行灵活的填充操作。

http://www.kler.cn/news/340557.html

相关文章:

  • Linux下Socket编程
  • 虚拟机没有网络怎么解决
  • 大数据新视界 --大数据大厂之 GraphQL 在大数据查询中的创新应用:优化数据获取效率
  • Authentication Lab | IP Based Auth Bypass
  • 深入理解作用域【JavaScript】
  • xtu oj 求和
  • CSS3--美若天仙!?
  • 切片辅助超推理-sahi库-get_sliced_prediction源码简析
  • 【2024保研经验帖】联系老师相关建议
  • MHAD数据集:由京东健康、华中科技大学和浙江大学联合收集,最全面包含多角度、多活动和多生理信号的家庭视频生理学数据集
  • 【C语言系统编程】【第一部分:操作系统知识】1.1.操作系统原理
  • django(二):定义第一个函数及url介绍
  • 从零开始搭建UVM平台(十)-加入scoreboard
  • Spring 事务管理失效的十大原因
  • Node脚本实现批量打包Vue项目(child_process子进程、window)
  • nginx常用功能,网站、反向代理、四层代理、优化方法、python动态页面解析。
  • 滚雪球学Redis[1.1讲]:什么是Redis?
  • graphql--快速了解graphql特点
  • 计算机毕业设计 基于Python的智能停车管理系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • 力扣hot100--链表