【问题标题】:Efficient way to extend a numpy array to n*length and duplicate its elements? [duplicate]将 numpy 数组扩展到 n*length 并复制其元素的有效方法? [复制]
【发布时间】:2023-03-08 11:11:01
【问题描述】:

我正在寻找一种快速获取numpy数组的方法,例如[[1,2,3,4]] 并将其转换为自身的扩展版本,其元素重复N 次。 IE。如果N = 2,那么[[1,2,3,4]] -> [[1,1,2,2,3,3,4,4]]

显然我可以使用明确的 for 来强制它,但我想知道是否可以通过某种方式对其进行矢量化以加快速度?

编辑:我使用 [[1,2,3,4]] 作为 np.array([1,2,3,4]) 的简写,抱歉造成混淆。另外,感谢那些提到 np.repeat 的人!这正是我所需要的。

【问题讨论】:

  • np.repeat(arr, n, axis=-1)
  • 这不是一个 numpy 数组
  • 我投了反对票,因为这表明没有对经过充分讨论的主题进行研究

标签: python arrays numpy


【解决方案1】:

试试这个:

from numpy import repeat

x = [[1,2,3,4]]
N = 3
y = repeat(x, N).reshape((1,-1))

print(y)

编辑: Quang 的解决方案更短,我承认...

y = repeat(x, N, axis=-1)

【讨论】:

    猜你喜欢
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 2020-12-13
    • 2020-03-26
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多