如何用numpy复制一行数组?

问题描述 投票:0回答:2

我想在python中复制数组的最后一行,并在numpy文档中找到以下代码行

>>> x = np.array([[1,2],[3,4]])
>>> np.repeat(x, [1, 2], axis=0)

在上面的代码中,np.repeat中的第二个参数“[1,2]”是做什么的?如果我想在3 * 3数组中复制一行,那么第二个参数将如何变化。

python numpy
2个回答
2
投票

它的重复参数

重复: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]])

1
投票

我使用以下代码测试它

    >>> 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次

© www.soinside.com 2019 - 2024. All rights reserved.