np.repeat 与 np.tile

1.Numpy的 tile() 函数,就是将原矩阵横向、纵向地复制。tile 是瓷砖的意思,顾名思义,这个函数就是把数组像瓷砖一样铺展开来。

举个例子,原矩阵:

1
2
import numpy as np
mat = np.array([[1,2], [3, 4]])

横向:

1
2
3
4
5
6
print(np.tile(mat,(1, 4)))
#等同于
print(np.tile(mat, 4))[[1 2 1 2 1 2 1 2]
 [3 4 3 4 3 4 3 4]]
[[1 2 1 2 1 2 1 2]
 [3 4 3 4 3 4 3 4]]

  

纵向:

1
2
3
4
5
6
np.tile(mat, (3, 1))array([[1, 2],
       [3, 4],
       [1, 2],
       [3, 4],
       [1, 2],
       [3, 4]])

  

横向 + 纵向

1
2
3
4
5
6
np.tile(mat, (3, 4))array([[1, 2, 1, 2, 1, 2, 1, 2],
       [3, 4, 3, 4, 3, 4, 3, 4],
       [1, 2, 1, 2, 1, 2, 1, 2],
       [3, 4, 3, 4, 3, 4, 3, 4],
       [1, 2, 1, 2, 1, 2, 1, 2],
       [3, 4, 3, 4, 3, 4, 3, 4]])

  

 

2. repeat函数功能:对数组中的元素进行连续重复复制 

用法有两种:

1) numpy.repeat(a, repeats, axis=None)

2) a.repeats(repeats, axis=None)   

 

参数:

: array_like 输入数组。

repeats: int或int数组 每个元素的重复次数。 广播重复以适合给定轴的形状。

axis : int,可选  沿其重复值的轴。默认情况下,使用展平的输入数组,并返回一个平面输出数组。

返回: repeated_array : ndarray  输出阵列,其具有相同的形状作为一个,除了沿给定轴。

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from numpy import *
repeat(7.,4)
==> array([7., 7., 7., 7.]
 
a=array([10,20])
a.repeat([3,2])
==>array([10, 10, 10, 20, 20])
 
 
repeat(a,[3,2])
==>array([10, 10, 10, 20, 20])
 
a=array([[10,20],[30,40]])
a.repeat([3,2],axis=0)
==>
array([[10, 20],
       [10, 20],
       [10, 20],
       [30, 40],
       [30, 40]])
 
 
a.repeat([3,2],axis=1)
==>
array([[10, 10, 10, 20, 20],
           [30, 30, 30, 40, 40]])

 

  

 

posted @   nxf_rabbit75  阅读(2145)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
横向:纵向:横向 + 纵向
点击右上角即可分享
微信分享提示