2011-10-10 3 views
53

나는2d 목록을 2d numpy 배열로 변환하는 방법은 무엇입니까?

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

같은 2D 목록 뭔가를하고 난 2 차원 NumPy와 배열로 변환합니다.

numpy.zeros((3,3)) 

과 같은 메모리를 할당하지 않고 처리 할 수 ​​있습니까?

+0

@Donkopotamus, 그건 나에게 실수였다 ... 나는 시퀀스를주고 있었다. 나는 동일을하고 있었지만 오류가 발생했습니다. 내가 여기에서 같은 코드를 얻은 후에 나는 prob가 어디에 있는지를 확인했다. 그래서 도움이된다. 내가 여기에 게시하기 전에 문서를 확인하는 것이 좋다 ... 친숙한 알림을 주셔서 감사합니다. – Shan

답변

63

그냥 np.array에 목록을 전달합니다 기본은 당신이 원하는 무엇을하지 않은 경우 당신은 또한 dtype을 설정하려면이 기회를 취할 수

a = np.array(a) 

.

a = np.array(a, dtype=...) 
+31

이 해결책은 작동하지 않습니다. 당신은 파이썬리스트의 배열을 얻을 것이다. – user1816847

+16

@ user1816847 'sub'목록의 길이가 다른 경우에만 발생합니다 (예 : [[1,2], [1,2], [1,2,3]]. 질문에 표시된 예와 함께 작동합니다 – compie

+1

하위 배열의 길이가 같지 않은 경우이 솔루션은 목록의 수가 많지 않은 배열 (예 : 내부 목록이 수가 많은 배열로 변환되지 않음) 만 제공합니다. 가변 2 차원을 가진 2D 배열 (행렬) – AHA

1

제가

XVals1 = [.........] 
XVals2 = [.........] 

각 목록은 동일한 길이 인 형태 파이썬 파일로 내보내 대용량 데이터 세트를 사용하고있다. 나는 그런

>>> A = np.matrix([a1,a2]) 
0

np.array() 더욱 강력한 unutbu 위의 말보다

>>> a1 = np.array(SV.XVals1) 

>>> a2 = np.array(SV.XVals2) 

를 사용합니다. 또한 높은하는 치수 배열에 순이익 배열의 목록을 변환하는 데 사용할 수 있습니다, 다음은 간단한 예입니다 :

aArray=np.array([1,1,1]) 

bArray=np.array([2,2,2]) 

aList=[aArray, bArray] 

xArray=np.array(aList) 

xArray의 형태는 (2,3), 그것은 표준 NP 배열입니다. 이 작업은 루프 프로그래밍을 방지합니다.

1

그냥 당신에게

을 줄 것이다 코드 그리고

c = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 
matrix([[1, 2, 3], 
    [4, 5, 6], 
    [7, 8, 9]]) 

다음 사용 당신이

c.shape

c.ndim 다음 코드를 사용하여 행렬의 모양과 크기를 확인할 수 있습니다

관련 문제