2017-01-03 2 views
-2

행렬이 X이고 목록이 centres입니다. 새로운 numpy 행렬 td_X을 만들고 싶습니다.목록을 numpy 행렬로 변환

td_X으로 채우려는 인덱스는 X의 행으로 구성되어 있으며 인덱스는 센터와 같습니다. 의사 코드 :

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

어떻게 이것을 파이썬을 사용하여 할 수 있습니까?

+1

전혀 시도 했습니까 ??? 심지어'np.array (x)'??? –

답변

2

그냥 모양을 변경하거나 짜 : 여기

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

작은 예입니다 인덱싱하여 제거가 당신을 얻어야한다.

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

목록에서 추가로 중첩 된 레이어를 제거 할 수 있지만 이러한 종류의 재구성은 배열을 사용하면 훨씬 쉽습니다.

1

x[0]에서 추가 레벨의 목록이 있습니다. 그 중간 크기의 크기가 1이기 때문에,

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

관련 문제