📜  Python| numpy matrix.repeat()(1)

📅  最后修改于: 2023-12-03 15:04:20.523000             🧑  作者: Mango

Python | numpy matrix.repeat()

numpy.matrix.repeat() 函数返回重复数组。

语法
numpy.matrix.repeat(arr, repeats, axis=None)
参数
  • arr: ndarray,将重复的输入数组。
  • repeats: int 或 tuple of int,将为 arr 中的每个元素重复的次数。重复的次数必须是非负的整数。对于元组,第 i 维的重复次数为 repeats[i]。如果此参数为 int,则用它为所有维度指定单个重复次数。
  • axis: int,沿着重复的轴。如果没有提供此参数,则输入数组会被展开。
返回值

返回重复的数组。

例子
import numpy as np

# 定义一个矩阵
matrix = np.array([[1, 2], [3, 4]])

# 将每个元素重复 2 次
result = np.matrix.repeat(matrix, 2)
print(result)

# 将第一维的元素重复 3 次,第二维的元素重复 2 次
result = np.matrix.repeat(matrix, (3, 2), axis=0)
print(result)

输出:

[[1 1 2 2]
 [3 3 4 4]]
 
 [[1 2]
  [1 2]
  [1 2]
  [3 4]
  [3 4]
  [3 4]]
应用

numpy.matrix.repeat() 主要用于多维数组中的数据重复。例如,你想要将一张图片沿横向(宽度)重复两次,则可以使用该函数来实现。

import numpy as np
from PIL import Image

# 读取图片
img = Image.open('example.jpg')

# 将图片转为 numpy 数组
arr = np.array(img)

# 将图片重复 2 次
arr_repeat = np.matrix.repeat(arr, 2, axis=1)

# 将 numpy 数组转为图片并显示
Image.fromarray(arr_repeat).show()

这将显示原始图片沿横向重复 2 次后的效果。