一、np.repeat介绍
np.repeat()是numpy中的一个函数,用于将一个数组中的元素重复指定次数生成新的数组。
其函数定义如下:
numpy.repeat(a, repeats, axis=None)
其中,a表示输入的数组,repeats表示每个元素重复的次数,默认为1,axis表示沿着哪个轴重复元素。
二、使用np.repeat生成重复数组
接下来我们看一个简单的例子,生成一个长度为3的一维数组,其中元素都是1。
import numpy as np
a = np.repeat(1, 3)
print(a)
输出结果为:
[1 1 1]
我们也可以生成一个二维数组:
b = np.repeat([[1, 2], [3, 4]], repeats=2, axis=1)
print(b)
这里np.repeat()函数的输入数组是一个包含两个子数组的二维数组,每个子数组中有两个元素。函数的重复次数为2,沿着轴1(即列轴)重复元素。
输出结果为:
[[1 1 2 2]
[3 3 4 4]]
三、使用np.repeat生成不同的重复次数
我们也可以指定不同的重复次数,可以传入一个列表或数组指定每个元素的重复次数。
c = np.repeat([1, 2, 3], [1, 2, 3])
print(c)
输出结果为
[1 2 2 3 3 3]
四、np.repeat生成高维数组
np.repeat()函数同样适用于高维数组。
d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
e = np.repeat(d, 2, axis=0)
print(e)
这里np.repeat()函数的输入是一个包含两个2×2的二维数组的3维数组,函数沿着轴0(即深度轴)重复每个子数组。
输出结果为:
[[[1 2]
[3 4]]
[[1 2]
[3 4]]
[[5 6]
[7 8]]
[[5 6]
[7 8]]]
五、使用np.tile实现重复生成数组
除了np.repeat()函数,numpy中还有一个类似的函数:np.tile()。np.tile()可以将数组沿各个轴重复指定次数生成新的数组,与np.repeat()的不同之处在于重复的是整个数组而不是每个元素,因此它的用途更为广泛。
举个例子:
f = np.array([[1, 2], [3, 4]])
g = np.tile(f, (2, 3))
print(g)
这里np.tile()函数的输入数组是一个2×2的二维数组,函数生成的新数组沿着行轴(轴0)重复2次,沿着列轴(轴1)重复3次。
输出结果为:
[[1 2 1 2 1 2]
[3 4 3 4 3 4]
[1 2 1 2 1 2]
[3 4 3 4 3 4]]
六、总结
本文介绍了Python中利用np.repeat生成重复数组的方法。np.repeat()函数是numpy中的一个函数,通过重复输入数组中的元素生成新的数组。我们可以使用它来生成任意维度的重复数组,并且还可以指定每个元素的重复次数。此外,我们还介绍了np.tile()函数,它与np.repeat()类似,但重复的是整个数组而不是每个元素。我们可以根据需要灵活地使用这两个函数。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/187920.html