我有一个矩阵X
和一个列表centres
。我想创建一个新的numpy矩阵td_X
。
我想填充td_X
,其中X
由for each in centers:
td_X.append(X[eacj])
行组成,其中索引等于中心。在伪代码中:
import random
l1= random.choice("ABCDEFGH")
l2= random.choice("ABCDEFGH")
print l1, l2
如何使用Python执行此操作?
答案 0 :(得分:3)
由于中间尺寸为1,因此只需重塑或挤压它。
x = np.array(alist)
x = np.squeeze(x) # or
x = x.reshape(45, 5785) # or
x = x[:,0,:]
您可以在列表中删除额外的嵌套层,但使用数组可以更轻松地进行这种重构。
答案 1 :(得分: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]])