np.tile(A,reps)、numpy.tile(A,reps)使用

np.tile(A,reps)、numpy.tile(A,reps)使用

函数作用为在输入的数组A的维度上进行复制操作,不改变原数组A。
Parameters:
A:输入数组
reps:A在每个维度上的复制倍数(复制为原来的几倍)

函数的使用
reps的长度记为d
首先确定A的维度和d的大小关系
(1)当A.ndim > d时:
扩展reps的长度d至A的维数。例如A的shape为(2,3),而reps为(2),则可将reps视为(1,2)。

import numpy as np

a = np.array([[0, 1, 2],[3,4,5]])
b=np.tile(a, (2))
c=np.tile(a, (1,2))
print(a.ndim)
print(b)
print(c)
print(a)

此处a的维度为2*3,reps为(2)则可将reps视为(1,2)即在a的第一个维度上复制到原来的1倍,在a的第二个维度上复制到原来的两倍,不改变原数组a。

2
[[0 1 2 0 1 2]
 [3 4 5 3 4 5]]
 [[0 1 2 0 1 2]
 [3 4 5 3 4 5]]
[[0 1 2]
 [3 4 5]]

综上,可以将reps为(2)则可将reps视为(1,2)进行操作,也可知道reps的值是从A的最后一个维度开始对应的。
(2)当A.ndim < d时:
会将A扩展为d维,例如A.shape为(2,3),reps为(2,3,4),则A.shape会被扩展为(1,2,3),再进行复制操作,不改变原数组a。

import numpy as np

a = np.array([[0, 1, 2],[3,4,5]])
b=np.tile(a, (2,3,4))
print(a.ndim)
print(b)
print(a)
2
[[[0 1 2 0 1 2 0 1 2 0 1 2]
  [3 4 5 3 4 5 3 4 5 3 4 5]
  [0 1 2 0 1 2 0 1 2 0 1 2]
  [3 4 5 3 4 5 3 4 5 3 4 5]
  [0 1 2 0 1 2 0 1 2 0 1 2]
  [3 4 5 3 4 5 3 4 5 3 4 5]]

 [[0 1 2 0 1 2 0 1 2 0 1 2]
  [3 4 5 3 4 5 3 4 5 3 4 5]
  [0 1 2 0 1 2 0 1 2 0 1 2]
  [3 4 5 3 4 5 3 4 5 3 4 5]
  [0 1 2 0 1 2 0 1 2 0 1 2]
  [3 4 5 3 4 5 3 4 5 3 4 5]]]
 [[0 1 2]
  [3 4 5]]
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值