시간과 공간

[패캠 부트캠프8기] Python - Numpy 본문

데이터 분석

[패캠 부트캠프8기] Python - Numpy

eh0000 2023. 3. 23. 21:28
※ 본 내용은 [패스트캠퍼스 : 데이터 분석 부트캠프 8기 - Python] 강의 내용을 기반으로 작성하였습니다. 내용 복사 및 인용하여 게시글 작성 시 출처 작성 부탁드립니다.

Python

함수

호출될 때만 기능을 수행하기 위해 실행되는 코드 블록

  • 인자(argument)라고 하는 데이터를 함수에 전달할 수 있습니다.
  • 함수는 결과로 데이터를 반환(return)할 수 있습니다.
def hello_function_2(name):
    return "Hello, " + name



# 실습 - return 값이 없는 함수
def ask_function(name, food):
  hello = hello_function_2(name)
  ask_food = "Do you like "+food+"?"
  print(hello+"! "+ask_food)

클래스

class Calculator:
    def __init__(self):
        self.result = 0

    def add(self, num):
        self.result += num
        return self.result

cal1 = Calculator()
cal2 = Calculator()

print(cal1.add(3))
print(cal1.add(4))
print(cal2.add(3))
print(cal2.add(7))

파일 읽고 쓰기

#strip
strip_sample = 'strip 메소드는 지정된 문자를 양 옆에서 지워줍니다.\n'

print('------------before-------------')
print(strip_sample)
print('------------after--------------')
print(strip_sample.strip('\n'))
print('-------------------------------')


'''
파일 객체를 생성할 때 목적에 따라 모드 값을 다르게 주어야 한다.
w: 쓰기 모드, 여는 순간 기존 내용이 날아감
r: 읽기 모드,
a: 추가 모드, 기존 내용 유지하면서 추가 가능
'''

f = open("new_file.csv", 'w', encoding="utf-8")
for i in range(1, 11):
    a = "%d번째 줄입니다.\n" % i
    f.write(a)
f.close()


# readline 함수로 파일 읽기
f = open("new_file.csv", 'r', encoding="utf-8")
line = f.readline()
print(type(line))
print(line)
f.close()


# 모든 줄을 읽어서 화면에 출력하고 싶은 경우
f = open("new_file.csv", 'r', encoding="utf-8")
while True:
    line = f.readline().strip('\n')
    # print(type(line))
    # if bool(line) == False:
    if not line:
        break
    print(line)
f.close()

# readline()은 더 이상 읽을 줄이 없을 경우 빈 문자열('')을 리턴

enumerate

  • “열거하다”라는 뜻
  • 반복문 사용 시 몇 번째 반복문인지 확인이 필요할 수 있을 때 사용
  • 인덱스 번호(순서)와 컬렉션의 원소(아이템의 값)를 tuple형태로 반환
  • 이 함수는 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 리턴
  • 보통 for문과 함께 자주 사용됨
# 순서가 1부터 시작
f = open("new_file.csv", 'r', encoding="utf-8")

for i, line in enumerate(f, 100):
    if i == 7:
        print(i, line)
        
f.close()

readlines 함수로 파일 읽기

f = open("new_file.csv", 'r', encoding='utf-8')
lines = f.readlines()
print(type(lines))
print(lines)
f.close()

줄 바꿈(\n) 문자 제거하기

파일을 읽을 때 줄 끝의 줄 바꿈(\n) 문자를 제거하고 사용해야 할 경우가 많다. 다음처럼 strip 함수를 사용하면 줄 바꿈 문자를 제거할 수 있다.

f = open("new_file.csv", 'r', encoding='utf-8')
lines = f.readlines()
for line in lines:
    line = line.strip('\n')  # 줄 끝의 줄 바꿈 문자를 제거한다.
    print(line)
f.close()

파일에 새로운 내용 추가하기

f = open("new_file.csv", 'a', encoding='utf-8')
for i in range(11, 21):
    data = "%d번째 줄입니다.\n" % i
    f.write(data)
f.close()

with 문과 함께 사용

파일을 열면(open) 항상 닫아(close)주어야 한다.

with문은 이렇게 파일을 열고 닫는 것을 자동으로 처리할 수 있게 역할을 해준다.

coffee_list = ['아이스 아메리카노', '카푸치노', '바닐라 라떼']
file_name = input("파일이름 설정")

with open(f'{file_name}.csv', 'w', encoding='utf-8') as f:
        f.write('\n'.join(coffee_list)+'\n')

라이브러리

  • time
  • datetime
  • os
  • pyautogui
  • gTTS
  • selenium

NumPy

  • Numerical Python
  • 배열(Array)을 다루는 파이썬 라이브러리
  • 머신러닝 연산과정에서 필수적
  • 오픈소스 프로젝트이며, 무료로 사용 가능
# 설치
%pip install numpy

# 불러오기
import numpy as np

# 버전 확인
print(np.__version__)

# numpy array 만들기 - 1차원
arr = np.array([1, 2, 3, 4, 5])

print(arr)
print(type(arr))

# 2차원 numpy array 

arr2 = np.array([[1, 2, 3], [4, 5, 6]])

print(arr2)

# 1차원 array에 접근
arr = np.array([1, 2, 3, 4])

print(arr[0])
print(arr[1])
print(arr[2]+arr[3])

# 2차원 array에 접근
arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])

print('첫번째 차원의 두번째 개체 : ', arr[0, 1])


# negative indexing
arr = np.array([[1,2,3,4,5], [6,7,8,9,10]])

print('2번째 차원의 마지막 개체 : ', arr[1, -1])

# negative slicing
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print(arr[-4:-1])

# 데이터타입 확인 - 정수
arr = np.array([1, 2, 3, 4, 5])

print(arr.dtype)

# 데이터타입 확인 - 유니코드 문자
arr = np.array(['ditto', 'OMG', 'Attention', 'Hype Boy'])

print(arr.dtype)

 

 

 

 

Comments