30. 라이브러리( Library )- 넘파이 ( NumPy ) (3) : 데이터의 최댓값, 최솟값 그리고 인덱스 / 데이터 불러오기, 삭제, 삽입
max 와 min 은 파이썬의 함수와 같다.
다른 점은 변수를 괄호 안에 파라미터로 사용하지 않고
X(넘파이).max 처럼 뒤에 붙여 사용하는 차이점이 있다.
최댓값, 최솟값의 인덱스를 구하는 함수는
argmax 함수와 argmin 함수로 구할 수 있다.
각 행열 별로 구하고 싶을 때는 argmax 함수와 argmin 함수의 파라미터 값에
axis = 0, 1 로 행과 열을 정해주면 된다.
1차원 배열에서의 데이터 억세스는 리스트와 같은 방식으로 인덱스를 입력하면 된다.
다차원 배열에서 인덱스 접근도 가능하다.
다만 직관적이지 않은 편이다.
다시 리스트처럼 생각하고 인덱스를 입력해야한다.
항목 삭제는 delete 함수를 이용한다.
delete(a, b) 파라미터 값에는 a = 삭제할 변수 ,b = 삭제할 인덱스 번호를 입력한다.
제일 중요한 점은 삭제에서 끝나면 안되고
다시 변수에 할당해줘야 삭제된 값이 메모리에 올라간다는 점이다.
다차원 배열에서 삭제할 때에도 delete 함수를 이용한다.
다만 데이터 하나만을 삭제하게되면 배열 구조가 유지되지않고 1차원 벡터로 돌아간다.
행이나 열로 삭제를 할 때에는 ,콤마를 하나 더 찍고 행 또는 열을 지정해줘야 한다.
복수 삭제 시에는 데이터 지정하는 부분에 리스트를 만들어 한 번에 삭제한다.
항목을 끝에 추가하는 방법은 파이썬의 함수와 마찬가지로
append 함수를 사용해 추가할 수 있다.
다만 파라미터 첫 번째 값에 데이터를 추가할 변수를 입력한다.
복수의 데이터는 리스트로 추가한다.
2차원에 추가할 때에는 행과 열을 맞춰서 추가해야하고
파라미터 값 마지막에 행, 열을 지정해줘야한다.
그리고 위 이미지를 얼핏 보면 입력이 잘 될것 같지만
reshape 함수로 2차원 배열로 만들어 데이터의 추가하면 된다.
항목을 원하는 위치에 입력하고 싶을 때는 insert 함수로 입력하면 된다.
여기서 불편한 점이 하나 있는데
위 append 함수와 행 insert 때에는 2차원 배열로 넣어야했는데
열 insert 입력할 때에는 벡터로 입력해야 정상적으로 들어간다...
헷갈릴 수 있는 부분이니 잘 짚고 넘어가야한다.