데이터 분석을 위한 라이브러리.1

모듈

코드의 길아가 길어지는 상황 이때, 모든 함수,변수를 구현하는 것은 불가능
-> 누군가 만들어놓은 함수,변수 등을 활용!

특정 목적을 가진 함수,자료의 모임

모듈사용!

import 키워드를 이용해서 모듈 사용

모듈 속 사용하려는 함수/변수의 사용법 확인

.(dot)을 쓴 후에 모듈 속 함수/변수 사용 a모듈.b함수

import random

print(random.randrange(0,2))

원하는 내용이 담긴 모듈 제작 가능 .py로 만들 수 있다.

1.py파일을 생성 후, 함수와 변수를 만든다.

cal.py

def plus(a,b):
	c = a + b
    return c
  1. 다른 파일에서 만들어 둔 py파일을 불러온다

  2. 불러온 모듈 속 함수,변수를 활용하기

import cal
print(cal.plus(3,4)) # 7

패키지

모듈을 폴더(Directory)로 구분하여 관리하는 것

ex.
1. import 활용

import user.cal

print (cal.plus(3,4))
  1. from-import -> from a import b
from user.cal import plus

print(plus(3,4)) # -> cal.plus()라고 안해도 됨!

quiz -> url가져오기 (필수)

Numpy

Numerical(수치적) Python
대규모 다차원 배열을 다룰 수 있게 도와주는 라이브러리

대표적 라이브러리
1.pandas
2.numpy
3.matplotlib

Why use Numpy?

데이터의 대부분이 숫자 배열로 되어 있기 때문!

반복문 없이 배열 처리 가능
파이썬 리스트에 비해, 빠른 연산을 지원하고 메모리를 효율적으로 사용함

numpy 배열 생성 및 출력 형태 확인
ndarray = n차원의 배열(n-dimensional array)

import numpy as np
np_arr = np.array(range(5))
print(np_arr)		# -> [0 1 2 3 4] -> 공백으로 구분 **리스트는 , 으로구분됨**
print(type(np_arr)) # -> <class 'numpy.ndaray'>

배열의 기초

파이썬 리스트와 달리 같은 데이터 타입만 저장 가능!
d type

arr = np.array([0,1,2,3,4],dtype=float)
print(arr)		# ->[0.1.2.3.4.]
print(arr.dtype)	# -> 'float64'
print(arr,astype(int))	# -> [0 1 2 3 4]

배열의 속성
ndarray의 차원 관련 속성 : ndim & shape (n + dimension)

#1차원 배열
list = [0,1,2,3]
arr = np.array(list)
print(arr.ndim)	# -> 1
print(arr.shape) # -> (4,)

#2차원 배열
list = [[0,1,2],[3,4,5]]
arr = np.array(list)
print(arr.ndim)  # -> 2
print(arr.shape) # -> (2,3)

Indexing&Slicing

indexing:인덱스로 값을 찾아냄
ex.

#1차원
x = np.arange(7)
print(x) # -> [0 1 2 3 4 5 6]
print(x[3]) # -> 3
print(x[7]) # -> IndexError: index 7 is out of bounds
x[0] = 10
print(x) # [10,1,2,3,4,5,6]

#2차원
x = np.arange(1,13,1) -> 1부터 12까지 1씩증가
x.shape = 3,4
print(x) # -> [[1 2 3 4]
	       [5 6 7 8]
               [9 10 11 12]]
               
print(x[2,3]) # -> 12

slicing : 인덱스의 값으로 배열의 일부분을 가져옴

#1차원 배열
x = np.arange(7)
print(x) # -> [0 1 2 3 4 5 6]
print(x[1:4])  # -> [1 2 3]
print(x[1:])   # -> [1 2 3 4 5 6]
print(x[::2])  # -> [0 2 4 6]     ::2 마지막 꺼는 간격

#2차원 배열
x = np.arange(1,13,1)
x.shape = 3,4
print(x) # -> [[1 2 3 4]
	       [5 6 7 8]
               [9 10 11 12]]
print(x[1:2,:2:3]) # -> [[5]]
print(x[1:2,:2])   # -> [[5 6]
						[9 10]]
        

Boolean indexing

배열의 각 요소의 선택 여부를 Boolean mask를 이용하여 지정하는 방식
조건에 맞는 데이터를 가져오고 참|거짓 인지를 알려줌

x = np.arange(7)

print(x[x < 3])  # -> [0 1 2]
print(x[x % 2 == 0])  # -> [0 2 4 6]

fancy indexing

배열의 각 요소 선택을 index배열을 전달하여 지정하는 방식(찾고 싶은 자리에 인덱스의 어떤값이 있는지? 를 보여줌)

#1차원 배열
x = np.arange(7)
print(x[[1,3,5]])   # -> [1 3 5]

#2차원 배열
x = np.arange(1,13,1).reshape(3,4)

print(x[[0,2]]) # -> [[1 2 3 4]
		      [9 10 11 12]]

좋은 웹페이지 즐겨찾기