R重塑数组以包含矩阵列表中的数据两次作为keras的准备
R reshape array to include data twice from list of matrices as prep for keras
我正在尝试创建一个 3D 数组,该数组复制元素(数据的副本),并且两者的行保持相同。这最终将成为一个时间序列的 keras/tensorflow lstm 输入数组(样本、时间步长、特征),其中,出于不同的原因,我确定我的时间步长也是我的特征并且我的样本是固定的(行).
一些数据:
perhaps <- matrix(sample(c(0:1), 20, replace = TRUE), nrow = 4,
ncol = 5)
print(perhaps)
perhaps
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 1 0 1
[2,] 0 0 0 0 1
[3,] 0 1 1 0 1
[4,] 1 0 0 1 1
perhaps_2_lst <- list(perhaps, perhaps)
all.equal(perhaps_2_lst[[1]], perhaps_2_lst[[2]])
[1] TRUE
#construct array from SOF inquestion:15213463
perhaps_arr <- array(
data = do.call(rbind, lapply(perhaps_2_lst, as.vector)),
dim = c(dim = c(dim(perhaps_2_lst[[1]])[1],
dim(perhaps_2_lst[[1]])[2], dim(perhaps_2_lst[[1]])[2]))
dim(perhaps_arr)
[1] 4 5 5
令人鼓舞。
print(perhaps_arr)
, , 1
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 1 1
[2,] 0 0 0 1 1
[3,] 0 1 0 0 0
[4,] 0 1 0 0 0
, , 2
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 1 1
[2,] 1 0 0 1 1
[3,] 0 0 1 1 1
[4,] 0 0 1 1 1
, , 3
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 1 1
[2,] 0 0 0 1 1
[3,] 0 1 0 0 0
[4,] 0 1 0 0 0
, , 4
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 1 1
[2,] 1 0 0 1 1
[3,] 0 0 1 1 1
[4,] 0 0 1 1 1
, , 5
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 1 1
[2,] 0 0 0 1 1
[3,] 0 1 0 0 0
[4,] 0 1 0 0 0
哎呀。我猜对数组不太熟悉。我期待的是:
, , 1
#perhaps
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 1 0 1
[2,] 0 0 0 0 1
[3,] 0 1 1 0 1
[4,] 1 0 0 1 1
, , 2
#perhaps
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 1 0 1
[2,] 0 0 0 0 1
[3,] 0 1 1 0 1
[4,] 1 0 0 1 1
即。重复相同的数据。现在难住了。非常感谢为理解这里发生的事情而提出的建议和澄清。
我们可以使用 replicate
n <- 2
replicate(n, perhaps)
#, , 1
# [,1] [,2] [,3] [,4] [,5]
#[1,] 0 0 1 0 1
#[2,] 0 0 0 0 1
#[3,] 0 1 1 0 1
#[4,] 1 0 0 1 1
#, , 2
# [,1] [,2] [,3] [,4] [,5]
#[1,] 0 0 1 0 1
#[2,] 0 0 0 0 1
#[3,] 0 1 1 0 1
#[4,] 1 0 0 1 1
我正在尝试创建一个 3D 数组,该数组复制元素(数据的副本),并且两者的行保持相同。这最终将成为一个时间序列的 keras/tensorflow lstm 输入数组(样本、时间步长、特征),其中,出于不同的原因,我确定我的时间步长也是我的特征并且我的样本是固定的(行).
一些数据:
perhaps <- matrix(sample(c(0:1), 20, replace = TRUE), nrow = 4,
ncol = 5)
print(perhaps)
perhaps
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 1 0 1
[2,] 0 0 0 0 1
[3,] 0 1 1 0 1
[4,] 1 0 0 1 1
perhaps_2_lst <- list(perhaps, perhaps)
all.equal(perhaps_2_lst[[1]], perhaps_2_lst[[2]])
[1] TRUE
#construct array from SOF inquestion:15213463
perhaps_arr <- array(
data = do.call(rbind, lapply(perhaps_2_lst, as.vector)),
dim = c(dim = c(dim(perhaps_2_lst[[1]])[1],
dim(perhaps_2_lst[[1]])[2], dim(perhaps_2_lst[[1]])[2]))
dim(perhaps_arr)
[1] 4 5 5
令人鼓舞。
print(perhaps_arr)
, , 1
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 1 1
[2,] 0 0 0 1 1
[3,] 0 1 0 0 0
[4,] 0 1 0 0 0
, , 2
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 1 1
[2,] 1 0 0 1 1
[3,] 0 0 1 1 1
[4,] 0 0 1 1 1
, , 3
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 1 1
[2,] 0 0 0 1 1
[3,] 0 1 0 0 0
[4,] 0 1 0 0 0
, , 4
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 1 1
[2,] 1 0 0 1 1
[3,] 0 0 1 1 1
[4,] 0 0 1 1 1
, , 5
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 1 1
[2,] 0 0 0 1 1
[3,] 0 1 0 0 0
[4,] 0 1 0 0 0
哎呀。我猜对数组不太熟悉。我期待的是:
, , 1
#perhaps
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 1 0 1
[2,] 0 0 0 0 1
[3,] 0 1 1 0 1
[4,] 1 0 0 1 1
, , 2
#perhaps
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 1 0 1
[2,] 0 0 0 0 1
[3,] 0 1 1 0 1
[4,] 1 0 0 1 1
即。重复相同的数据。现在难住了。非常感谢为理解这里发生的事情而提出的建议和澄清。
我们可以使用 replicate
n <- 2
replicate(n, perhaps)
#, , 1
# [,1] [,2] [,3] [,4] [,5]
#[1,] 0 0 1 0 1
#[2,] 0 0 0 0 1
#[3,] 0 1 1 0 1
#[4,] 1 0 0 1 1
#, , 2
# [,1] [,2] [,3] [,4] [,5]
#[1,] 0 0 1 0 1
#[2,] 0 0 0 0 1
#[3,] 0 1 1 0 1
#[4,] 1 0 0 1 1