Numpy中文文档

引言

Numpy是Python中非常重要的一个库,它提供了大量的数学函数以及处理大型多维数组和矩阵的能力。其中,numpy.repeat函数和numpy.ndarray.repeat方法是Numpy库中两个用于重复数组元素的非常有用的工具。在本文中,我们将深入探讨这两个函数/方法的工作原理和使用方法。

numpy.repeat函数和numpy.ndarray.repeat方法

numpy.repeat函数

numpy.repeat函数用于沿指定轴重复数组的元素。它的基本语法如下:

numpy.repeat(a, repeats, axis=None)
  • a:输入的数组。
  • repeats:每个元素要重复的次数。可以是一个整数(所有元素重复相同的次数)或一个整数数组(每个元素重复对应的次数)。
  • axis:沿哪个轴重复。默认是None,表示将输入数组展平后重复。

numpy.ndarray.repeat方法

numpy.ndarray.repeat方法与numpy.repeat函数非常相似,但它作为Numpy数组对象的一个方法存在。其基本语法如下:

ndarray.repeat(repeats, axis=None)
  • repeats:每个元素要重复的次数。可以是一个整数或一个整数数组。与numpy.repeat函数的repeats参数含义相同。
  • axis:沿哪个轴重复。与numpy.repeat函数的axis参数含义相同。默认是None。

代码实战

纯粹的文字说明不太直观,小编更倾向用代码工具进行直观展示。首先生成一个大小为256×256的原始图像:

import numpy as np
import cv2

img1 = np.zeros((256, 256), dtype=np.uint8) # 创建一个大小为256*256的全黑图像
img[16:112,118:138] = 255 # 第17-112行,119-138列的像素由黑变白 (索引从0开始)
img[144:-16,118:138] = 255 # # 第145-倒数第16行,119-138列的像素由黑变白

cv2.imshow('img', img) # 展示图像
cv2.waitKey(0) # 显示图像

结果如下:
在这里插入图片描述

将原始图像沿着【纵轴】重复3次

代码如下:

import numpy as np
import cv2

img1 = np.zeros((256, 256), dtype=np.uint8) # 创建一个大小为256*256的全黑图像
img[16:112,118:138] = 255 # 第17-112行,119-138列的像素由黑变白 (索引从0开始)
img[144:-16,118:138] = 255 # # 第145-倒数第16行,119-138列的像素由黑变白

# (256, 256) ---> (768, 256)
# 方案1 numpy数组的repeat方法
img = img.repeat(repeats=3, axis=0) # axis=0 代表沿【纵轴】方向将【每行】依次重复3次
# 方案2 numpy数组的repeat函数
img = np.repeat(img, repeats=3, axis=0) 

cv2.imshow('img', img) # 展示图像
cv2.waitKey(0) # 显示图像

运行结果如下:
在这里插入图片描述
从生成的新图像可以看出,numpy的repeat函数是沿着纵轴方向,对每行像素依次复制2遍(要求新图像重复3次,那么只需要复制2遍)。

将原始图像沿着【横轴】重复3次

import numpy as np
import cv2

img1 = np.zeros((256, 256), dtype=np.uint8) # 创建一个大小为256*256的全黑图像
img[16:112,118:138] = 255 # 第17-112行,119-138列的像素由黑变白 (索引从0开始)
img[144:-16,118:138] = 255 # # 第145-倒数第16行,119-138列的像素由黑变白

# (256, 256) ---> (256, 768)
# 方案1 numpy数组的repeat方法
img = img.repeat(repeats=3, axis=1) # axis=1 代表沿【横轴】方向将【每列】依次重复3次
# 方案2 numpy数组的repeat函数
img = np.repeat(img, repeats=3, axis=1) 

cv2.imshow('img', img) # 展示图像
cv2.waitKey(0) # 显示图像

运行结果如下:
在这里插入图片描述
从生成的新图像可以看出,numpy的repeat函数是沿着横轴方向,对每列像素依次复制2遍。

结束语

  • 亲爱的读者,感谢您花时间阅读我们的博客。我们非常重视您的反馈和意见,因此在这里鼓励您对我们的博客进行评论。
  • 您的建议和看法对我们来说非常重要,这有助于我们更好地了解您的需求,并提供更高质量的内容和服务。
  • 无论您是喜欢我们的博客还是对其有任何疑问或建议,我们都非常期待您的留言。让我们一起互动,共同进步!谢谢您的支持和参与!
  • 我会坚持不懈地创作,并持续优化博文质量,为您提供更好的阅读体验。
  • 谢谢您的阅读!
Logo

一站式 AI 云服务平台

更多推荐