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


85

2D 목록이 있습니다.

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

2d numpy 배열로 변환하고 싶습니다. 메모리를 할당하지 않고 할 수 있습니까?

numpy.zeros((3,3))

그런 다음 값을 저장합니까?


@Donkopotamus, 그것은 나에 의한 실수였습니다 ... 나는 시퀀스를주고 있었는데 ... 나는 똑같이하고 있었지만 오류가 발생했습니다. 여기에서 동일한 코드를 얻은 후 문제가있는 위치를 확인했습니다 ... 그래서 도움이됩니다 ... 오프 코스 여기에 게시하기 전에 문서를 확인합니다 ... 친절한 알림에 감사드립니다.
Shan

답변:


90

목록을 np.array다음으로 전달하십시오 .

a = np.array(a)

이 기회를 dtype통해 기본값이 원하는 것이 아닌 경우 설정할 수도 있습니다 .

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

109
이 솔루션은 작동하지 않습니다. 당신은 파이썬 목록의 numpy 배열을 얻을 것입니다.
user1816847

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

5
하위 배열의 길이가 같지 않은 경우이 솔루션은 수많은 목록 배열 만 제공합니다 (즉, 내부 목록은 숫자 배열로 변환되지 않음). 가변 2 차원을 가진 2D 배열 (매트릭스)을 가질 수 없으므로 완전히 의미가 있습니다.
AHA

2017 년 9 월 (Ubuntu 16.04 LTS)부터 감사드립니다. 이것이 내가 필요한 것입니다. 예상보다 훨씬 간단합니다.
SDsolar

1
중요한 대답 @compie 주셔서 감사합니다
iedmrc

2

python 파일로 내 보낸 대용량 데이터 세트를 형식으로 사용하고 있습니다.

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

각 목록의 길이는 동일합니다. 나는 사용한다

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

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

그때

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

여기서 'SV'는 무엇입니까
gocen

2

다음 코드를 사용하십시오.

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

그러면 그것은 당신에게 줄 것입니다

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

c. 모양

c.ndim


2

np.array()unutbu가 위에서 말한 것보다 훨씬 더 강력합니다. 또한이를 사용하여 np 배열 목록을 더 높은 차원 배열로 변환 할 수 있습니다. 다음은 간단한 예입니다.

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

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

aList=[aArray, bArray]

xArray=np.array(aList)

xArray의 모양은 (2,3)이며 표준 np 배열입니다. 이 작업은 루프 프로그래밍을 방지합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.