본문 바로가기

Hello python!/Python_DA

파이썬 데이터분석_numpy변환(정렬, 참조, 복사)2

20221020

12일차

 

 

 

 

 

 


 

* 행렬에서 전치행렬이란 행과 열을 교환하여 얻는 행렬이다.

 

 


하지만 위의 사진과 같이 메서드를 적용하면

원본 값이 변하는것이 아닌 시뮬레이션의 결과만 출력된다.

 


 

 

그렇다면 원본까지 바꿔주는 메서드는 뭐가 있을까

 


 

.revel() 메서드는 다차원의 행렬을 1차원으로 바꿔준다.

3 x 4 배열인 arr1.revel() 메서드를 적용시킨 arr21차원 배열이 되는것을 볼 수 있다.

 

 

arr1에 .reshape 메서드를 적용시킨 배열을 arr3이라고 했을때arr3에 값을 수정하면 원본 arr1도 값이 수정되는것을 볼 수 있다.

 


 

동일한 사이즈에 값은 다른 난수로 이루어진 배열 2개을 만들어보자.

 


 

변경되는 배열의 요소 수가 동일하면 .reshape()와 동일하게 동작한다.

 

사이즈가 다르면 refcheck = False를 넣어 빈자리를 채워야 한다.

 


 

 

3 x 3 사이즈를 가진 배열 2개를 만들어 보자.

 


* Axis로 방향을 설정해 줘야한다.

 


 

만약 모양이 서로 다른 배열을 결합하면 어떻게 될까

 

로 합치기는 안되지만 행으로 합치기는 가능하다.

 


인덱스로 값을 추가하는 메서드 np.insert()

 


 

원본 배열은 유지되고 시뮬레이션으로 결과가 출력된다.

 

 

axis를 이용해 방향을 선택할 수 있다.

 

 


 

추가가 가능하면 삭제도 가능한 법

 

3x3 배열 a를 np.revel(a)로 1차원으로 만들어 주고

np.delete()를 쓰면 원본 a는 3 x 3배열로 안의 값 또한 변경 없이 가지고 있다.

 

시뮬레이션의 결과 이므로 혼동에 유의하자.

 

 


 

 

 여기 총 4개의 배열이 있다.

 

행 방향으로 결합 하려면 열 개수가 동일해야하고

열 방향으로 결합 하려면 행 개수가 동일해야한다.

 


균등하게 split되지 않았다. 

* np.split을 쓰면 결과의 데이터 타입은 리스트이다. 하지만 시뮬레이션을 출력해준다.

 

 

균등하게 split하고 싶으면 스칼라 값을 넘기면 된다.

 

* 스칼라 값으로 처리시 주의할 점은 나눈 갯수가 정수로 떨어저야 한다.

 


 

* axis로 방향을 넣어 split 할 수도 있다.