일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- IT
- 스택
- 그래프
- 그리디
- 백준
- 재귀 함수
- 문법
- sys.stdin.readline()
- 배열
- 트리
- 순차 탐색
- format 메서드
- 기초
- 이진 탐색
- 우분투
- 탐색
- 자기개발
- NQueen
- MiniHeap
- git hub
- UNIX
- type 함수
- Git
- 분할 정복
- 동적 계획
- 유닉스
- 정렬
- 자료구조
- 알고리즘
- 파이썬
Archives
- Today
- Total
코딩고치
[파이썬][데이터 사이언스 기초] numpy 본문
numpy array
- numpy의 모듈의 numpy 함수를 이용하여 numpy array 생성
import numpy
array1 = numpy.array([2, 3, 5, 7, 11, 13, 17, 19, 25, 29, 35])
array1
array([ 2, 3, 5, 7, 11, 13, 17, 19, 25, 29, 35])
type(array1)
numpy.ndarray
- 요소 확인
array1.shape
(11,)
- 2차원 배열
array2 = numpy.array([[1, 2, 3, 4], [5, 6, 7, 8,], [9, 10, 11, 12]])
type(array2)
numpy.ndarray
array2
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
array2.shape
(3, 4)
- ndarray: n차원 array를 의미
array1.shape
의 (11,)는 1차원 배열에 요소가 11개array2.shape
의 (3, 4)는 2차원 ( 3 * 4) 배열을 의미
array1.size
11
array2.size
12
numpy array 생성 방법
- 파이썬 리스트
array1 = numpy.array([2, 3, 5, 7, 11, 13, 17, 19, 25, 29, 35])
print(array1)
[ 2 3 5 7 11 13 17 19 25 29 35]
- 같은 값으로 생성
numpy.full(개수, 값)
array2 = numpy.full(5, 3)
print(array2)
[3 3 3 3 3]
- 모든 값을 0으로 생성
numpy.full(개수, 0)
numpy.zeros(개수, dtype=int)
array3 = numpy.full(5, 0)
array4 = numpy.zeros(5, dtype=int)
print(array3)
print()
print(array4)
[0 0 0 0 0]
[0 0 0 0 0]
- 모든 값을 1로 생성
numpy.full(개수, 1)
numpy.ones(개수, dtype=int)
array5 = numpy.full(5, 1)
array6 = numpy.ones(5, dtype=int)
print(array5)
print()
print(array6)
[1 1 1 1 1]
[1 1 1 1 1]
- 랜덤값으로 생성
numpy.random.random(개수)
array7 = numpy.random.random(5)
array8 = numpy.random.random(6)
print(array7)
print()
print(array8)
[0.57043701 0.57889066 0.99636637 0.63634386 0.81984017]
[0.8931859 0.43020379 0.41245118 0.62497618 0.90985426 0.69009768]
- 연속된 값으로 생성
numpy.arange(n)
: 0부터 n-1까지 numpy array 생성numpy.arange(n, m)
: n부터 m-1까지 numpy array 생성numpy.arange(n, m, l)
: n부터 m-1까지 간격 l로 numpy array 생성
array9 = numpy.arange(5)
print(array9)
print()
array10 = numpy.arange(2, 5)
print(array10)
print()
array11 = numpy.arange(1, 10, 2)
print(array11)
[0 1 2 3 4]
[2 3 4]
[1 3 5 7 9]
alias
import numpy as np
: numpy를 np로 간단하게 쓸 수 있음
import numpy as np
array12 = np.arange(5)
print(array12)
print()
array13 = np.arange(2, 5)
print(array13)
print()
array14 = np.arange(1, 10, 2)
print(array14)
[0 1 2 3 4]
[2 3 4]
[1 3 5 7 9]
인덱싱
- 일반적인 list 인덱스와 같음
import numpy as np
array15 = np.array([2, 3, 4, 5, 6, 9, 11, 14, 15, 17])
array15[0]
2
array15[-1]
17
- 리스트를 이용하여 여러개의 값 한번에 인덱싱 가능
array15[[1, 3, 4]]
array([3, 5, 6])
- array를 이용하여 인덱싱 가능
array16 = np.array([1, 3, 5])
array15[array16]
array([3, 5, 9])
- 인덱스 슬라이싱도 일반적인 리스트와 같음
array15[2:7]
array([ 4, 5, 6, 9, 11])
array15[:7]
array([ 2, 3, 4, 5, 6, 9, 11])
array15[2:]
array([ 4, 5, 6, 9, 11, 14, 15, 17])
array15[2:9:3]
array([ 4, 9, 15])
기본 연산
import numpy as np
array1 = np.arange(10)
array2 = np.arange(10, 20)
array * x
,array / x
,array + x
,array - x
,array ** x
- 전체 원소에 해당 연산을 취함
array1 * 4
array([ 0, 4, 8, 12, 16, 20, 24, 28, 32, 36])
array1 / 3
array([0. , 0.33333333, 0.66666667, 1. , 1.33333333,
1.66666667, 2. , 2.33333333, 2.66666667, 3. ])
array1 ** 2
array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81], dtype=int32)
array1 + 4
array([ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13])
array1 - 4
array([-4, -3, -2, -1, 0, 1, 2, 3, 4, 5])
array1 + array2
: array1과 array2의 각각의 인덱스에 해당하는 값을 더함
array1 + array2
array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28])
array1 * array2
array([ 0, 11, 24, 39, 56, 75, 96, 119, 144, 171])
array1 - array2
array([-10, -10, -10, -10, -10, -10, -10, -10, -10, -10])
불린 연산
import numpy as np
array1 = np.array([1, 4, 6, 8, 9, 11, 15, 18, 20])
array1 > 10
array([False, False, False, False, False, True, True, True, True])
array1 % 2 == 0
array([False, True, True, True, False, False, False, True, True])
bolleans = np.array([True, True, False, False, True, False, False, True, True])
# True만 담긴 index를 출력
np.where(bolleans)
(array([0, 1, 4, 7, 8], dtype=int64),)
np.where(array1 > 10)
(array([5, 6, 7, 8], dtype=int64),)
- 데이터를 필터링할 때 유용하게 사용
filter = np.where(array1 > 10)
filter
(array([5, 6, 7, 8], dtype=int64),)
array1[filter]
array([11, 15, 18, 20])
통계
import numpy as np
array1 = np.array([52, 64, 21, 44, 94, 55, 34, 12])
# 최댓값
print(array1.max())
# 최솟값
print(array1.min())
# 평균
print(array1.mean())
# 중앙값
print(np.median(array1))
# 표준 편차
print(array1.std())
# 분산
print(array1.var())
94
12
47.0
48.0
24.150569351466643
583.25
'파이썬 > 데이터 사이언스 기초' 카테고리의 다른 글
[파이썬][데이터 사이언스 기초] DataFrame 변형 (0) | 2020.06.03 |
---|---|
[파이썬][데이터 사이언스 기초] DataFrame 인덱싱 (0) | 2020.06.02 |
[파이썬][데이터 사이언스 기초] pandas (0) | 2020.05.27 |
Comments