wasup
Python) numpy(Numerical Python) 본문
반응형
numpy(Numerical Python)
- 벡터 및 행렬연산에 특화된 라이브러리
- array(ndarray) 단위로 데이터를 관리. 즉, array단위로 연산을 수행한다.
- 2차원 array는 행렬(matrix)과 유사하다.
- pandas와 함께 데이터분석에 많이 사용한다.
- 수치해석용 python library이다.
참고 사이트
- home : https://numpy.org
- doc : https://docs.scipy.org/doc
- tutorial :
1. 1차원 Array정의 및 사용
# 1. np.array() : 데이터를 numpy배열로 리턴
data = [1, 2, 3, 4, 5]
arr = np.array(data)
print(type(arr), arr, type(data), data)
# np.array() 데이터형이 다를경우(다른 요소를 가지는 경우) 강제형변환(upcasting)이 일어난다.
arr1 = np.array([1, 2, 3, 4, 3.14])
arr1 #전부 실수로 upcasting
<class 'numpy.ndarray'> [1 2 3 4 5] <class 'list'> [1, 2, 3, 4, 5]
array([1. , 2. , 3. , 4. , 3.14])
#배열의 크기 확인
print(arr1.shape) #튜플형태로 리턴
print(np.shape(arr1))
help(arr1.shape)
(5,)
(5,)
Help on tuple object:
...
2. 2차원 array(행렬, matrix)
data = [[1, 2, 3], [4, 5, 6]]
arr = np.array(data)
print(arr.shape, arr)
# numpy의 datatype보기
arr.dtype
# 3*3
arr = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])
print(arr.shape, '\n', arr)
# 정방형이 아닌경우(리스트요소갯수가 다를 경우)
arr = np.array([[1, 2, 3],[4, 5, 6],[7, 8, ]])
print(arr.shape, '\n', arr)
3. numpy 연산
- numpy배열은 리스트와 유사하지만 다음과 같은 점에서 다르다.
- 모든 원소가 동일 자료형이어야 한다.
- 원소의 갯수는 변경할 수 없다.
1) np.shape
- numpy에서 해당 array의 크기를 확인할 수 있는 함수, 이 함수는 정수를 리턴해준다.
- 1차원배열인 경우 (5,) 2차원 배열일 경우 (3,3)의 형태로 리턴
2) np.dtype
- int 8, 32, 64 : 부호가 있는 정수
- uint 8, 32, 64 : 부호가 없는 정수
- float 16, 32, 64, 128 : 실수
- bool
- string
- object
- unicode
# 1. numpy배열 연산
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])
print("더하기 : \n", arr1 + arr2)
print("빼기 : \n", arr1 - arr2)
print("곱하기 : \n", arr1 * arr2)
print("나누기 : \n", arr1 / arr2)
print("전체의 2배 : \n", arr1 * 2)
print("전체의 제곱근 : \n", arr1 ** 2)
print()
# numpy 함수이용
print("더하기 : \n", np.add(arr1 , arr2))
print("빼기 : \n", np.subtract(arr1 , arr2))
print("곱하기 : \n", np.multipl(arr1 , arr2))
print("나누기 : \n", np.divide(arr1 , arr2))
2. numpy array broadcasting
- numpy배열에서는 기본적으로 동일 크기를 가져야 연산이 가능하지만 배열의 크기에 틀릴 경우에
- 이런 점을 보완하기 위해 numpy에서는 broadcast라는 기능을 제공해 준다.
- 즉, broadcating는 서로 크기가 다른 numpy배열의 연산이 가능하도록 해주는 기능이다.
# 2. broadcasting
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([7, 8, 9])
print("더하기 : \n", arr1 + arr2)
print("빼기 : \n", arr1 - arr2)
print("곱하기 : \n", arr1 * arr2)
print("나누기 : \n", arr1 / arr2)
print("전체의 2배 : \n", arr1 * 2)
print("전체의 제곱근 : \n", arr1 ** 2)
반응형
'IT > Python' 카테고리의 다른 글
Phthon) numpy array의 indexing, slicing 연습문제 (0) | 2021.05.27 |
---|---|
Phthon) numpy array의 indexing과 slicing (0) | 2021.05.26 |
Python) 데이터분석 (0) | 2021.05.24 |
Python) 파이썬 제어문 if! (0) | 2021.05.23 |
Python) 파이썬 자료형 딕셔너리 (dict {}) (0) | 2021.05.22 |
Comments