【发布时间】:2021-12-31 10:48:48
【问题描述】:
目标是连接嵌套的数组列表(即list_arr)。但是,list_arr 中的一些子列表的长度为零。
在list_arr 上简单地使用np.array 或np.asarray 不会产生预期的结果。
import numpy as np
ncondition=2
nnodes=30
nsbj=6
np.random.seed(0)
# Example of nested list list_arr
list_arr=[[[np.concatenate([[idx_sbj],[ncondi],[nepoch] ,np.random.rand(nnodes)]) for nepoch in range(np.random.randint(5))] \
for ncondi in range(ncondition)] for idx_sbj in range(nsbj)]
以下不会产生预期的连接输出
test1=np.asarray(list_arr)
test2=np.array(list_arr)
test3= np.vstack(list_arr)
预期的输出是一个形状数组(15,33)
【问题讨论】:
-
提供输入数据。
-
test2 和 test3 有什么问题。 test1 与 test2 相同。
-
感谢@hpaulj。我同意 都是一样的,只是为了展示测试过的内容
-
好的,我整理了你的代码(我不应该这样做),发现它会生成各种大小的嵌套列表。
np.array生成带有参差不齐的警告的对象 dtype 数组。vstack失败,说尺寸不匹配。你应该告诉我们的!外部len是6。下面有几层数组,还有一些[]列表。这不能制成常规的 numpy 数组。我投票关闭
标签: python numpy concatenation