2013-03-28 2 views
1

어떻게 파이썬에서 열 매트릭스와 행 매트릭스를 나타낼 수 있습니까?파이썬에서 열 매트릭스 표현

A =[1,2,3,4] 

1 
2 
3 
4 
+0

정확히 무엇이 필요한지에 따라 다르므로 왜 설명해야합니까? 파이썬에서 목록은 항상 행 행렬과 같지만 다른 데이터 유형을 사용하면 필요한 것을 가질 수 있습니다. –

+0

2 행렬 1 행 행렬과 다른 행렬 행렬이 있습니다.이 두 행렬을 곱하고 싶습니다. – diva

+0

이것을 확인하십시오 http://stackoverflow.com/questions/10508021/matrix-multiplication-in-python –

답변

5

행렬 이차원 구조이다. 평범한 파이썬에서 행렬의 가장 자연스러운 표현은리스트의리스트입니다.

그래서, 당신은 행 행렬을 작성할 수 있습니다

[[1, 2, 3, 4]] 

을하고 열 행렬을 쓰기 :

[[1], 
[2], 
[3], 
[4]] 

이뿐만 아니라 MXN 행렬에 잘 확장 :

[[10, 20], 
[30, 40], 
[50, 60]] 

af를 개발하는 방법의 예는 matfunc.py을 참조하십시오. pure Python의 ull matrix 패키지. 해당 설명서는 here입니다. 당신은 매트릭스의 일을 심각하게 얻는 경우에, 그것을 언급 다른 응답자로

>>> from pprint import pprint 
>>> def mmul(A, B): 
     nr_a, nc_a = len(A), len(A[0]) 
     nr_b, nc_b = len(B), len(B[0]) 
     if nc_a != nr_b: 
      raise ValueError('Mismatched rows and columns') 
     return [[sum(A[i][k] * B[k][j] for k in range(nc_a)) 
       for j in range(nc_b)] for i in range(nr_a)] 

>>> A = [[1, 2, 3, 4]] 
>>> B = [[1], 
     [2], 
     [3], 
     [4]] 

>>> pprint(mmul(A, B)) 
[[30]] 

>>> pprint(mmul(B, A), width=20) 
[[1, 2, 3, 4], 
[2, 4, 6, 8], 
[3, 6, 9, 12], 
[4, 8, 12, 16]] 

: 여기

그리고

는리스트의-목록 표현을 사용하여 일반 파이썬에서 행렬 곱셈을 수행하는 일 아웃 예이다 많은 매트릭스 작업을 직접 지원하는 numpy을 설치해야합니다 :

+1

하나는 이것을 위해 numpy를 사용하는 것을 고려할 수도 있습니다 ... – mgilson

+1

OP는 아직 그 점프를 할 준비가되어 있지 않습니다 : -) –

+2

시작 하기엔 너무 이릅니다. 그리고 솔직히 말하자면, numpy 배열로 작업하는 것이 목록의 기능을 복제하는 것보다 훨씬 쉽습니다. – mgilson