2017-01-03 220 views
-2

我有一个矩阵X和列表centres。我想创建一个新的numpy矩阵td_X将列表转换为numpy矩阵

我想填充td_X,其中由X的行组成,其索引等于中心。在伪代码:

for each in centers: 
    td_X.append(X[eacj]) 

我该如何使用Python做到这一点?

+1

你尝试过什么吗?甚至'np.array(x)'? –

回答

2

自认为中等尺寸大小为1,只需重塑或挤压它。

x = np.array(alist) 
x = np.squeeze(x) # or 
x = x.reshape(45, 5785) # or 
x = x[:,0,:] 

您可以删除列表中的额外嵌套层,但是这种重新整形对于数组来说更容易。

1

x[0],你有一个额外的级别的列表缠绕。通过索引中删除它应该让你有:

x = np.array([l[0] for l in x]) 

这里是一个小例子:

x = [[[1,2]], [[2,3]], [[4,5]]] 

np.array(x).shape 
# (3, 1, 2) 

np.array([l[0] for l in x]).shape 
# (3, 2) 

np.array([l[0] for l in x]) 
# array([[1, 2], 
#  [2, 3], 
#  [4, 5]]) 
+0

这仍然会产生一个尺寸为:(45,1,5785)' – user7347576

+0

的数组吗?您是否已将结果返回给'x'? – Psidom

+0

不适用于其他变量。 – user7347576