【问题标题】:Replicate multidimensional NumPy array on an axis up-to specific value在轴上复制多维 NumPy 数组,直到特定值
【发布时间】:2021-04-13 11:35:14
【问题描述】:

我有一个带有形状的二维 NumPy 数组

(2, 2)

示例数组

数组([[1, 2], [3, 4]])

我试图让它在第一个轴上复制,直到它到达形状:

(5, 2)

示例结果数组

数组([[1, 2], [1, 2], [1, 2], [3, 4], [3, 4]])

np.repeat 可以完成这项工作,但它必须是倍数,因为它会重复所有内容

np.repeat(arr, 3, axis=0)

数组([[1, 2], [1, 2], [1, 2], [3, 4], [3, 4], [3, 4]])

给出一个 6 x 2 数组而不是 5 x 2 数组

【问题讨论】:

    标签: python arrays numpy multidimensional-array


    【解决方案1】:
    np.repeat(arr, [3, 2], axis=0)
    

    【讨论】:

    • 谢谢,但我希望将整个阵列重复 3 次,而不是每个阵列重复特定数量。我有一个非常大的数组,有更多的轴,所以我正在寻找一种方法来重复整个数组,就像正常的 np.repeat(arr, no, axis) 但裁剪剩余部分,例如如果我想重复 (1475 ,2) 要到达的数组 (3500, 2)
    • 抱歉这个令人困惑的问题,现在我想起来了,但如果有一种方法会有所帮助
    • @AzariaGebremichael 我想裁剪是最好的方法,你可以动态地构建一个重复数组以提供给np.repeat,但我想它是过度设计的,它可能会比裁剪慢。比如:q, r = np.divmod(3500, 3); repeats = [3] * q + [r] + [0] * (len(arr) - q - 1); newarr = np.repeat(arr, repeats, axis=0)
    猜你喜欢
    • 2020-01-15
    • 2014-08-08
    • 1970-01-01
    • 2013-09-21
    • 2021-05-19
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    相关资源
    最近更新 更多