Python连接存储在列表中的不同大小数组
我有一个“Z”列表,其中包含:Python连接存储在列表中的不同大小数组,python,list,Python,List,我有一个“Z”列表,其中包含: import numpy as np z[0] = np.random.normal( 0, 1, ( 500, 20 ) ) z[1] = np.random.normal( 0, 1, ( 500, 30 ) ) 列表中大约有100个数组。我只使用尺寸为2的列表进行说明。存储的数组的维数均为0/500 我想实现: C = np.concatenate( ( z[0] , z[1] ),1) 我试过: z1 = [ np.concatenate( z[ii]
import numpy as np
z[0] = np.random.normal( 0, 1, ( 500, 20 ) )
z[1] = np.random.normal( 0, 1, ( 500, 30 ) )
列表中大约有100个数组。我只使用尺寸为2的列表进行说明。存储的数组的维数均为0/500
我想实现:
C = np.concatenate( ( z[0] , z[1] ),1)
我试过:
z1 = [ np.concatenate( z[ii], 1 ) for ii in range(0,len(z)) ]
但是它仍然返回原始列表,并且不连接存储的数组多维数组的连接在没有指定连接轴的情况下定义有点不正确。我假设您希望水平堆叠阵列,因为两者的行数相同。最简单的电话是
stacked = np.hstack(Z)
将沿轴1连接。您可以找到文档
更一般地说,您还可以使用
stacked = np.concatenate(Z, axis=1)
这也适用于高维数组。相应的文档是。多维数组的连接在没有指定连接轴的情况下有点定义不清。我假设您希望水平堆叠阵列,因为两者的行数相同。最简单的电话是
stacked = np.hstack(Z)
将沿轴1连接。您可以找到文档
更一般地说,您还可以使用
stacked = np.concatenate(Z, axis=1)
这也适用于高维数组。相应的文档是。我被numpy的东西弄糊涂了,但现在我明白你在问什么了。你只是把你的理解清单翻了个底朝天 而不是
z1 = [ np.concatenate( z[ii], 1 ) for ii in range(0,len(z)) ]
你想要
z1 = np.concatenate((z[ii] for ii in range(0, len(z)), 1)
请注意,我将其更改为生成器表达式,因为您并不真正关心中间列表。我被numpy的内容弄糊涂了,但现在我明白了您的要求。你只是把你的理解清单翻了个底朝天 而不是
z1 = [ np.concatenate( z[ii], 1 ) for ii in range(0,len(z)) ]
你想要
z1 = np.concatenate((z[ii] for ii in range(0, len(z)), 1)
请注意,我将其更改为生成器表达式,因为您并不真正关心中间列表。您也可以传递
z
,而不是将其包装在迭代器中。@TillHoffmann Nice-我对Numpy非常不熟悉,在大学里只使用过几次。你也可以直接通过z
,而不是用迭代器来包装它。@TillHoffmann Nice-我对Numpy非常不熟悉,在大学里只使用过几次。