【问题标题】:R - undo an array_arrange()R - 撤消 array_arrange()
【发布时间】:2026-01-31 14:05:03
【问题描述】:

我正在寻找一种在 R 中撤消 array_reshape() 函数的方法。欢迎提供任何帮助。

library(reticulate) 

mat <- matrix(rep(1:1000), nrow = 10)

mat.1 <- array_reshape(mat, c(nrow(mat), 10,10,1)) 

# make mat.2 the same dimensions as mat
mat.2 <- ???

【问题讨论】:

  • 请包含对library(reticulate) 的调用,因为array_reshape 不是基本函数。

标签: r arrays matrix reshape reticulate


【解决方案1】:

您可以像这样设置数组的dim 值:

dim(mat.1) <- c(10, 100)

【讨论】:

    【解决方案2】:

    为什么不这样做:

    mat.2 = mat
    

    如果你避免覆盖你的第一个矩阵,它仍然像以前一样在内存中。当你在 R 中对一个对象进行操作时,R 会自动创建一个副本,所以你对它所做的操作实际上是在一个副本上进行的。

    【讨论】:

    • 哈哈,不错。但我会对 mat.1 做一些事情。想确保我按照原来的顺序放回去。所以无论是在 mat[3,5] 中的什么,都会在 mat.1 中对其进行一些处理,然后将其放回 mat.2[3,5];等等