Numpy 03
목차
-arange: array, list를 생성함
-range: 반복문 구문 내에서 범위 지정
-정렬(sort)
-인덱스를 반환하는 argsort
-broadcasting
arange와 range를 같이 보고 이해하기
1. arange
1-1. 순서대로 list에 값을 생성하려면?
arr = [1,2,3,4,5,6,7,8,9,10] #이렇게 해도 되는데.. 귀찮다
arr = np.arange(1,11) #1이상 11미만으로 숫자를 넣어준다
(첫번째 인자에는 start 이상, 두번째 인자에는 stop의 미만이 들어감)
1-2. keyword 인자를 사용해보기
1) 함수나 수치가 길어질 때 직관적으로 보이게 해준다.
arr = np.arange(start=1, stop=11)
2) 순서를 바꿔서 적어도 출력이 된다.
arr = np.arange(11, 1) #11과 1이 순서가 바뀌어서 출력이 안된다
arr = np.arange(stop=11, start=1) #이렇게 순서를 바꿔서 적어도 출력이 된다
1-3. step 키워드 활용
step: 몇 칸씩 건너뛸래? 의미
ex) 홀수 값만 생성해보자
arr = np.arange(1, 11, 2)
arr = np.arange(start=1, stop=11, step=2)
2. range (numpy와 관련없는 python 문법)
for i in range(1,11):
print(i)
정렬
1. 1차원 정렬
arr = np.array([1,10,5,8,2,4,3,6,8,7,9])
arr
np.sort(arr) #기본적으로 오름차순
np.sort(arr)[::-1] #내림차순
2. N차원 정렬
2-1. 열 정렬 (axis = 1): 왼쪽에서 오른쪽으로
arr = np.array([[5,6,7,8], [4,3,2,1], [10, 9, 12, 11]])
np.sort(arr2d, axis = 1)
행 안에 있는 성분의 크기에 따라 각 행 속 열의 순서가 바뀐다.
2-2. 행 정렬 (axis = 0): 위에서 아래로
arr = np.array([[5,6,7,8], [4,3,2,1], [10, 9, 12, 11]])
np.sort(arr2d, axis = 0)
각 행의 첫 성분의 크기에 따라 행의 순서가 바뀐다.
argsort
정렬된 값이 아닌 정렬된 값의 index number를 반환한다.
1. 열 정렬 (axis = 1)
arr2d = np.array([[5,6,7,8], [4,3,2,1], [10, 9, 12, 11]])
np.argsort(arr2d, axis = 1) #axis = 1, 즉 열 정렬
해당 성분이 정렬되면 어느 위치로 가게될지 index number를 반환해주는 것
2. 행 정렬 (axis = 0)
np.argsort(arr2d, axis = 0) #axis = 0, 즉 행 정렬
2번째 행이 1번째 행으로 정렬이 되므로 값이 이렇게 출력됨
broadcasting
a = np.array([[1,2,3], [2,3,4]])
b = np.array([[3,3,3], [3,3,3]])
a + b
→ array([[4,5,6], [5,6,7]])
[broadcasting 방식]
a + 3, a - 3, a * 3, a / 3
끝! 다음 시간부터는 다시 판다스로