Python 从10个不同的(104,)维numpy.ndarray创建(104,1,10)维numpy.ndarray

Python 从10个不同的(104,)维numpy.ndarray创建(104,1,10)维numpy.ndarray,python,numpy,Python,Numpy,我有10个不同的104,形状104元素在1维numpy ndarray中。我需要将所有这些元素叠加在一起,形成一个104,1,10形状的数组。预期输出如下所示 我编写了以下代码,在第一次迭代后,由于“rulesetArray”维度不匹配,这当然会给我带来错误 valueerror:所有输入数组必须具有相同的形状 将numpy作为np导入 rulesetArray=np.zeros104,1 listString=['100010001..','1010101..',,,,,,,'10001000

我有10个不同的104,形状104元素在1维numpy ndarray中。我需要将所有这些元素叠加在一起,形成一个104,1,10形状的数组。预期输出如下所示

我编写了以下代码,在第一次迭代后,由于“rulesetArray”维度不匹配,这当然会给我带来错误

valueerror:所有输入数组必须具有相同的形状

将numpy作为np导入 rulesetArray=np.zeros104,1 listString=['100010001..','1010101..',,,,,,,'100010001..']listString中的每个元素长度为104,有10个元素 对于listString中的i: npArray=np.arraylisti,dtype=int输出104,大小npArray npArray=npArray。重塑104,1将npArray转换为104,1形状 rulesetArray=np.stack[rulesetArray,npArray 我想你在找np.dstack

沿第三轴按深度顺序堆叠阵列

代码:

将numpy作为np导入 a=np.0,1 b=np.ones5,1 打印'a:',a,a.shape,'b:',b,b.shape,sep='\n' 堆叠的_arr=np.dstacka,b 打印'stacked:',stacked_arr,stacked_arr.shape,sep='\n' 输出:

a: [[0.] [0.] [0.] [0.] [0.]] 5, 1 b: [[1.] [1.] [1.] [1.] [1.]] 5, 1 堆叠: [[[0. 1.]] [[0. 1.]] [[0. 1.]] [[0. 1.]] [[0. 1.]]] 5, 1, 2 堆栈…,axis=1应该生成一个104,10,可以将其重塑为所需的结果。只需执行一个堆栈“”,而不是重复一个。rulesetArray以104,1开始,但第一个堆栈之后是什么?2,104,1。不能使用104,1进行堆栈!
In [116]: alist = [np.arange(10) for _ in range(5)]                                                          
In [117]: arr = np.stack(alist, axis=1)                                                                      
In [118]: arr.shape                                                                                          
Out[118]: (10, 5)
In [119]: arr.reshape(10,1,5)                                                                                
Out[119]: 
array([[[0, 0, 0, 0, 0]],

       [[1, 1, 1, 1, 1]],

       [[2, 2, 2, 2, 2]],

       [[3, 3, 3, 3, 3]],

       [[4, 4, 4, 4, 4]],

       [[5, 5, 5, 5, 5]],

       [[6, 6, 6, 6, 6]],

       [[7, 7, 7, 7, 7]],

       [[8, 8, 8, 8, 8]],

       [[9, 9, 9, 9, 9]]])