今天遇到了在给多维度的tensor使用numpy.repeat()函数axis的设置问题。但是search了一些blog。并没有人解释这个问题,所以我今天来解释一下。
总而言之,numpy.repeat()这个函数可以起到根据维度复制tensor的作用
至于你想要复制哪个维度要来设置axis这个系数。
废话不多说,直接上代码。
import numpy as np
# 随机生成[0,10)之间的数,形状为(2,3,4,5),将此数组重复3次
# 这个方法并不会引起维度的变化.
# 这里面的axis的取值会代表不同的操作,
# 但是总而言之从左侧开始的第一项永远对应axis=0,最后一项永远是axis=-1.
# 因为在这里咱们有4个维度所以当把axis设置为3或是-1,所得到的效果是一样的。
pop = np.random.randint(0, 10, size=(2,3,4,5))
bob = pop.repeat(3, axis=0)
coc = pop.repeat(3, axis=1)
dod = pop.repeat(3, axis=2)
eoe = pop.repeat(3, axis=-1)
print("pop\n",pop,pop.shape) # shape:(2,3,4,5)
print("bob\n",bob,bob.shape) # shape:(6,3,4,5) axis=0
print("coc\n",coc,coc.shape) # shape:(2,9,4,5) axis=1
print("dod\n",dod,dod.shape) # shape:(2,3,12,5) axis=2
print("eoe\n",eoe,eoe.shape) # shape:(2,3,4,15) axis=-1
从左侧开始的第一项永远对应axis=0,最后一项永远是axis=-1.