TIL 240205

hyeo71·2024년 2월 5일
0

2024 내배캠 AI 트랙

목록 보기
24/108

오늘 공부

  • Python GitBook
  • SQL 131~140

Python

string

string.find & string.index

공통점

  • 찾는 문자의 index를 반환
  • 찾는 문자가 여러개라면 가장 처음에 발견한 위치를 반환

차이점

  • find: 찾는 문자가 존재하지 않으면 -1 반환
  • index: 찾는 문자가 존재하지 않으면 에러 발생

dictionary

dictionary.get('key')

dictionary['key']와 같은 결과를 리턴

dictionary['key']와의 차이점

  • dictionary['key']: 키가 없다면 에러를 발생
  • dictionary.get('key'): 키가 없다면 None을 반환

dictionary.clear()

딕셔너리 전체를 지워 딕셔너리를 비운다.

set

집합에 관련된 연산을 쉽게 처리하기 위한 자료형
순서가 없고 중복을 허용하지 않는다.

교집합: set1 & set2
합집합: set1 | set2
차집합: set1 - set2

요소 추가(list.append): set1.add
한번에 여러개의 요소 추가: set1.update(list)
요소 삭제: set1.remove(val)


매개변수 & 인수

매개변수: 함수를 정의할 때 사용하는 변수 (add(x, y)의 x, y)
인수: 함수를 호출할 때 넘기는 변수 (add(4, 5)의 4, 5)

def add(x, y):
	return x + y

print(add(4,5))

객체지향 프로그래밍

컴퓨터 프로그램밍 패러다임 중 하나
프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법

특징

  • 추상화 (Abstraction)
    클래스를 설계하는 것 자체
    공통의 속성이나 기능을 묶어 이름을 붙이는 것

  • 캡슐화 (Encapsulation)
    기능과 특성의 모음을 클래스라는 캡슐에 분류해서 넣는 것
    코드를 재수정 없이 재활용 가능하게 사용하기 위해서 사용
    접근 제어자를 통한 정보 은닉 가능

  • 상속 (Inheritance)
    부모 클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게 하는 것
    기능의 일부분을 변경해야 할 경우 상속받은 자식 클래스에서 해당 기능만 재정의(오버라이딩)하여 사용 가능

  • 다형성 (Polymorphism)
    하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석

    오버라이딩(OverWriting)
    부모 클래스의 메서드와 같은 이름, 매개 변수를 재정의 하는 것

    오버로딩(OverLoading)
    같은 이름의 함수를 여러개 정의하고, 매개변수의 타입과 개수를 다르게 하여 매개 변수에 따라 다르게 호출 가능


try, except, else, finally

가장 기본적으로 사용되는 절: try - except

try: 실행하는 코드
except: 에러가 발생했을 경우 시행할 코드 (중복 사용 가능, 여러개의 에러를 처리할 경우 사용)

else: 예외가 발생하지 않아 except 절을 실행하지 않았을 경우 실행
finally: 예외의 발생여부에 관계없이 항상 실행


Numpy, Pandas(DataFrame)

Numpy

import numpy as np

# 1차원 배열
arr = np.array([1, 2, 3, 4, 5])


# 2차원 배열
arr = np.array([[10, 20, 30], [ 60, 70, 80]]) 


# 1씩 증가하는 1차원 배열(시작이 0부터)
print(np.arange(10)) 	# [0 1 2 3 4 5 6 7 8 9]


# 1씩 증가하는 1차원 배열(시작이 5부터)
print(np.arange(5, 10)) 	# [5 6 7 8 9]


# 영행렬 생성
print(np.zeros((2,2)))  	# [[0. 0.]
							#  [0. 0.]]


# 유닛행렬
print(np.ones((2,3)))  		# [[1. 1. 1.]
							#  [1. 1. 1.]]


# 모든 원소가 5인 2*3행렬
print(np.full((2,3), 5)) 	# [[5 5 5]
							#  [5 5 5]]


# 단위행렬
print(np.eye(3)) 			# [[1. 0. 0.]
							#  [0. 1. 0.]
							#  [0. 0. 1.]]

Pandas - DataFrame

DataFrame은 2차원 리스트를 매개변수를 전달
행: index
열: column

import pandas as pd

df = pd.DataFrame(values, index=index, columns=columns)
######################################
   student id      name  score
0        1000     Steve  90.72
1        1001     James  78.09
2        1002    Doyeon  98.43
3        1003      Jane  64.19
4        1004  Pilwoong  81.30
5        1005      Tony  99.14


# 앞 부분 2개까지 보기
print(df.head(2))

#########################
   student id      name  score
0        1000     Steve  90.72
1        1001     James  78.09


# 뒷 부분 4개 까지 보기
print(df.tail(4))

#########################
   student id      name  score
2        1002    Doyeon  98.43
3        1003      Jane  64.19
4        1004  Pilwoong  81.30
5        1005      Tony  99.14


# 'name'에 해당하는 열을 보기
print(df['name'])

#########################
0    Steve
1    James
2    Doyeon 
3    Jane
4    Pilwoong 
5    Tony 
Name: name, dtype: object

SQL 131~140

0개의 댓글