Python-매트릭스
행렬은 각 데이터 요소의 크기가 완전히 동일한 2 차원 배열의 특수한 경우입니다. 따라서 모든 행렬도 2 차원 배열이지만 그 반대는 아닙니다. 행렬은 많은 수학적 및 과학적 계산에서 매우 중요한 데이터 구조입니다. 이전 장에서 2 차원 배열 데이터 구조에 대해 이미 논의했듯이이 장에서는 행렬에 특정한 데이터 구조 연산에 초점을 맞출 것입니다.
또한 행렬 데이터 조작을 위해 numpy 패키지를 사용하고 있습니다.
매트릭스 예
아침, 정오, 저녁, 자정에 측정 된 1 주일 동안 온도를 기록하는 경우를 고려하십시오. numpy에서 사용할 수있는 배열 및 모양 변경 방법을 사용하여 7X5 행렬로 표시 할 수 있습니다.
from numpy import *
a = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m = reshape(a,(7,5))
print(m)
위의 데이터는 아래와 같이 2 차원 배열로 표현할 수 있습니다.
[['Mon' '18' '20' '22' '17']
['Tue' '11' '18' '21' '18']
['Wed' '15' '21' '20' '19']
['Thu' '11' '20' '22' '21']
['Fri' '18' '17' '23' '22']
['Sat' '12' '22' '20' '18']
['Sun' '13' '15' '19' '16']]
행렬의 값에 액세스
인덱스를 사용하여 행렬의 데이터 요소에 액세스 할 수 있습니다. 액세스 방식은 2 차원 배열에서 데이터에 액세스하는 방식과 동일합니다.
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
# Print data for Wednesday
print(m[2])
# Print data for friday evening
print(m[4][3])
위의 코드가 실행되면 다음과 같은 결과가 생성됩니다.
['Wed', 15, 21, 20, 19]
23
행 추가
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m_r = append(m,[['Avg',12,15,13,11]],0)
print(m_r)
위의 코드가 실행되면 다음과 같은 결과가 생성됩니다.
[['Mon' '18' '20' '22' '17']
['Tue' '11' '18' '21' '18']
['Wed' '15' '21' '20' '19']
['Thu' '11' '20' '22' '21']
['Fri' '18' '17' '23' '22']
['Sat' '12' '22' '20' '18']
['Sun' '13' '15' '19' '16']
['Avg' '12' '15' '13' '11']]
열 추가
insert () 메서드를 사용하여 행렬에 열을 추가 할 수 있습니다. 여기서 열을 추가 할 인덱스와 추가 된 열의 새 값을 포함하는 배열을 언급해야합니다. 아래 예에서는 처음부터 다섯 번째 위치에 새 열을 추가합니다.
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m_c = insert(m,[5],[[1],[2],[3],[4],[5],[6],[7]],1)
print(m_c)
위의 코드가 실행되면 다음과 같은 결과가 생성됩니다.
[['Mon' '18' '20' '22' '17' '1']
['Tue' '11' '18' '21' '18' '2']
['Wed' '15' '21' '20' '19' '3']
['Thu' '11' '20' '22' '21' '4']
['Fri' '18' '17' '23' '22' '5']
['Sat' '12' '22' '20' '18' '6']
['Sun' '13' '15' '19' '16' '7']]
행렬에서 행 삭제
delete () 메서드를 사용하여 행렬에서 행을 삭제할 수 있습니다. 행의 인덱스와 행의 경우 0, 열의 경우 1 인 축 값을 지정해야합니다.
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m = delete(m,[2],0)
print(m)
위의 코드가 실행되면 다음과 같은 결과가 생성됩니다.
[['Mon' '18' '20' '22' '17']
['Tue' '11' '18' '21' '18']
['Thu' '11' '20' '22' '21']
['Fri' '18' '17' '23' '22']
['Sat' '12' '22' '20' '18']
['Sun' '13' '15' '19' '16']]
행렬에서 열 삭제
delete () 메서드를 사용하여 행렬에서 열을 삭제할 수 있습니다. 열의 인덱스와 행의 경우 0, 열의 경우 1 인 축 값을 지정해야합니다.
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m = delete(m,s_[2],1)
print(m)
위의 코드가 실행되면 다음과 같은 결과가 생성됩니다.
[['Mon' '18' '22' '17']
['Tue' '11' '21' '18']
['Wed' '15' '20' '19']
['Thu' '11' '22' '21']
['Fri' '18' '23' '22']
['Sat' '12' '20' '18']
['Sun' '13' '19' '16']]
행렬의 행 업데이트
행렬 행의 값을 업데이트하려면 행의 인덱스에 값을 다시 할당하면됩니다. 아래 예에서 thrursday 데이터의 모든 값은 0으로 표시됩니다. 이 행의 색인은 3입니다.
from numpy import *
m = array([['Mon',18,20,22,17],['Tue',11,18,21,18],
['Wed',15,21,20,19],['Thu',11,20,22,21],
['Fri',18,17,23,22],['Sat',12,22,20,18],
['Sun',13,15,19,16]])
m[3] = ['Thu',0,0,0,0]
print(m)
위의 코드가 실행되면 다음과 같은 결과가 생성됩니다.
[['Mon' '18' '20' '22' '17']
['Tue' '11' '18' '21' '18']
['Wed' '15' '21' '20' '19']
['Thu' '0' '0' '0' '0']
['Fri' '18' '17' '23' '22']
['Sat' '12' '22' '20' '18']
['Sun' '13' '15' '19' '16']]