array : 여러 값들의 그룹
1차원
- np.array([1,2,3])
- .shape() : (3,)
- axis 는 0
2차원
- np.array([[1,2,3], [4,5,6], [7,8,9]])
- .shape() : (3,3)
- axis 는 0, 1
- array는 list와 다르게 1개의 단일 데이터 타입만 허용됨
- arr = np.array([1,2,3.14], dtype=int)
- 위와 같이 숫자형의 경우 지정하는게 가능하지만 str이 혼재되어 있는 경우 숫자형으로 지정 불가
슬라이싱
- 배열의 부분 선택할 때
- (2d) arr2d[2, 1]
- (1d) index 5 미만까지 : arr[:5]
- (2d) row를 모두 가져오기 : arr2d[0, :]
- (2d) col을 모두 가져오기 : arr2d[:, 0]
- (2d) 범위 : arr2d[2:, :3]
조건 필터
arr2d[arr2d > 2] # array([3,4,5,6,7,8,9,10,11,12])
Fancy Indexing
- 범위가 아닌 특정 index의 집합의 값을 선택하여 추출하고 싶을 때
- 추출하고 싶은 인덱스를 [ ] 로 묶어줄 것
arr = np.array([1,2,3,4,5,6,7])
arr2d = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
arr = np.array([1,2,3,4,5,6,7])
arr2d = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
Boolean 인덱싱
- 조건 필터링을 통하여 boolean값을 이용한 색인
myTrueFalse = [True, False, True, False, True, False, True]
arange
- 순차적으로 번호를 생성할 때
- (Eg) 회원에 대한 가입 번호 부여
- 1부터 10까지 생성
- arr = np.arange(1,11)
- arr = np.arange(start=1, stop=11)
- arr = np.arange(start=1, stop=11, step=2)
- 키워드 인자를 사용하면 순서 상관 없음
range
- numpy와 상관없는 python 문법