我想在python中复制数组的最后一行,并在numpy文档中找到以下代码行
>>> x = np.array([[1,2],[3,4]])
>>> np.repeat(x, [1, 2], axis=0)
在上面的代码中,np.repeat中的第二个参数“[1,2]”是做什么的?如果我想在3 * 3数组中复制一行,那么第二个参数将如何变化。
它的重复参数
重复:int或int数组
每个元素的重复次数。广播重复以适合给定轴的形状。
它是您希望根据参数轴重复行或列的次数。
x = np.array([[1,2],[3,4],[4,5]])
np.repeat(x, repeats = [1, 2, 1 ], axis=0)
这将导致重复第1行,第2行和第3行一次。
array([[1, 2],
[3, 4],
[3, 4],
[4, 5]])
类似地,如果指定轴= 1.重复可以在列表中最多使用2个元素,并且在代码下方导致第1列重复一次,第2列重复两次。
x = np.array([[1,2],[3,4],[4,5]])
np.repeat(x, repeats = [1, 2 ], axis=1)
array([[1, 2, 2],
[3, 4, 4],
[4, 5, 5]])
如果你想只重复最后一行,只重复最后一行和堆栈,即
rep = 2
last = np.repeat([x[-1]],repeats= rep-1 ,axis=0)
np.vstack([x, last])
array([[1, 2],
[3, 4],
[4, 5],
[4, 5]])
我使用以下代码测试它
>>> a
array([[1, 2],
[3, 4]])
>>> np.repeat(a, [2,3], axis = 0)
array([[1, 2],
[1, 2],
[3, 4],
[3, 4],
[3, 4]])
>>> np.repeat(a, [1,3], axis = 0)
array([[1, 2],
[3, 4],
[3, 4],
[3, 4]])
第二个参数似乎意味着a中第i个元素将重复多少次。正如我上面所示的代码,[2,3]重复a [0] 2次并重复[1] 3次,[1,3]重复a [0] 1次并重复[1] 3次