1. NumPy 란?
: numerical python(수치적 파이썬)
대규모 다차원 배열을 다룰 수 있게 도와주는 라이브러리
(라이브러리는 pandas, numpy...)
2. 왜 사용하나?
데이터 대부분은 숫자 배열로 볼 수 있다.
픽셀의 밝은 부분과 어두운 부분을 숫자로
3. 장점
반복문 없이 배열 처리 가능!
반복문 없이 빠른 연산 가능, 메모리 효율적으로 사용 가능!
4. 리스트와 Numpy의 차이점
리스트를 사용하면 데이터 타입 자체가 리스트. -> 1차원의 배열
numpy의 경우 공백으로 데이터가 출력되고, 공백으로 구분한다는 것은 리스트가 아닌 N 차원의 배열!
list_arr = list(range(5)). # 리스트
import numpy as np # numpy 사용법
np_arr = np.array(range(5))
5. 배열의 기초
리스트와 달리 배열은 같은 데이터 타입만 저장가능!
리스트 : [1,"test",1.4]
arr = np.arrray([0,1,2,3,4], dtype = float)
print(arr)
print(arr.dtype)
6. indexing & Slicing
indexing : 인덱스로 값을 찾아냄
x = np.arrange(7)
print(x[3])
x1 = np.arrange(1,13,1) # 1부터 13까지 1씩 증가
x1.shape = 3,4
slicing : 인덱스의 값으로 배열의 일부분을 가져옴
x = np.arrange(7)
print(x[1:4]) #[1 2 3]
print(x[::2]) # 처음부터 끝까지 2의 간격을 두고 출력하라!
Boolean indexing : 배열의 각 요소의 선택여부를 Boolean mask 를 이용하여 지정하는 방식
1. 조건에 맞는 데이터를 가져온다
2. 참인지 거짓인지 알려줌
x = np.arrange(7)
print(x<3) [ True True True False False False False ]
Fancy indexing : 배열의 각 요소 선택을 index 배열을 전달하여 지정하는 방식
찾고싶은 자리 = 어떤 값이 있는지?
print(x[[1,3,5]])
1) ndim & shape (쬐꼼 어렵네?)
크기 속성과 shape 조절 가능
list = [1,2,3,4]
arr.ndim -> 1 (차원)
arr.shape -> (4,)
arr.shape = 3,2. # 수정 가능
<실습1> 1차원 배열
import numpy as np
print("1차원 array")
array = np.array(range(10))
print(array)
# 1. array의 자료형을 출력해보세요.
print(type(array)) 배열의 자료형
# 2. array의 차원을 출력해보세요.
print(array.ndim)
# 3. array의 모양을 출력해보세요.
print(array.shape)
# 4. array의 크기를 출력해보세요.
print(array.size)
# 5. array의 dtype(data type)을 출력해보세요.
print(array.dtype) # 배열이 갖고 있는 요소의 자료형
# 6. array의 인덱스 5의 요소를 출력해보세요.
print(array[5])
# 7. array의 인덱스 3의 요소부터 인덱스 5 요소까지 출력해보세요.
print(array[3:6])
<실습2> 2차원 배열
import numpy as np
print("2차원 array")
#1부터 15까지 들어있는 (3,5)짜리 배열을 만듭니다.
matrix = np.array(range(1,16))
matrix.shape = 3,5
print(matrix)
# 1. matrix의 자료형을 출력해보세요.
print(type(matrix))
# 2. matrix의 차원을 출력해보세요.
print(matrix.ndim)
# 3. matrix의 모양을 출력해보세요.
print(matrix.shape)
# 4. matrix의 크기를 출력해보세요.
print(matrix.size)
# 5. matrix의 dtype(data type)을 출력해보세요.
print(matrix.dtype)
# 6. matrix의 dtype을 str로 변경하여 출력해보세요.
print(matrix.astype('str'))
# 7. matrix의 (2,3) 인덱스의 요소를 출력해보세요.
print(matrix[2,3])
# 8. matrix의 행은 인덱스 0부터 인덱스 1까지, 열은 인덱스 1부터 인덱스 3까지 출력해보세요.
print(matrix[0:2,1:4])
<실습3> 인덱싱, 슬라이싱
import numpy as np
matrix = np.arange(1, 13, 1).reshape(3, 4)
print(matrix)
# 1. Indexing을 통해 값 2를 출력해보세요.
answer1 = matrix[0,1]
# 2. Slicing을 통해 매트릭스 일부인 9, 10을 가져와 출력해보세요.
answer2 = matrix[2:,:2]
# 3. Boolean indexing을 통해 5보다 작은 수를 찾아 출력해보세요.
answer3 = matrix[matrix<5]
# 4. Fancy indexing을 통해 두 번째 행만 추출하여 출력해보세요.
answer4 = matrix[[1]]
# 위에서 구한 정답을 출력해봅시다.
print(answer1)
print(answer2)
print(answer3)
print(answer4)
'Data Analysis' 카테고리의 다른 글
[데이터분석] Pandas 심화! 데이터 조작과 분석 (0) | 2021.09.25 |
---|---|
[데이터분석] 데이터 조작 및 분석을 위한 Pandas! (0) | 2021.09.23 |
[데이터분석] 파이썬 모듈과 라이브러리란? (1) | 2021.09.22 |
[데이터분석](Project1)코로나 확진자 데이터 분석하기 2 (0) | 2021.09.22 |
[데이터분석](Project1) 코로나 데이터 분석하기1 (0) | 2021.09.22 |