티스토리 뷰

반응형

쥬피터 노트북 실행방법

cd p1 엔터(p1 폴더로 이동한다)

jupyter lab을 쳐서 실행

 

lab은 notebook과 기능이 다르다.

 

아나콘다 네비게이터에서 쥬피터 랩, 노트북을 실행할 수도 있다.

 

쥬피터 노트북은 다른 탭으로 열리고, 쥬피터 랩은 오른쪽에 열린다.

 

Alt + Enter : 실행 후 다음 코드 셀을 생성한다.

Ctrl + Enter : 제자리에서 실행

Shift + Enter: 실행 후 다음으로

 

마크다운은 글씨를 쓰는 것이고, 코드셀은 코드를 넣는다.

 

위에 셀을 생성하려면 a, 아래는 b, 지울려면 dd

원래는 esc +dd로 해야하는 것들.

되돌리려면 z

 

마크다운으로 전활하려면 m, 코드셀로 전환하려면 y

 

<br>를 하면 한줄 내려간다.

 

shift+L 을 누르면 라인 번호 표시한다.

veiw => show line numbers도 가능하다.

마크다운 문법

제목을 붙이려면 마크다운 문법 #을 쓰면 된다.

하나면 제일 크고(h1), 하나씩 줄어 나간다.

 

  • 을 붙이려면 *을 쓰면 된다.

내부로 하려면 Tab으로 띄어놓고 쓴다.

왼쪽 바를 그리려면 >

굵게 강조하려면 **문장** 과 같이 주변에 **을 붙여주면 된다.

 

링크 삽입이나 이미지 삽입

https://gist.github.com/ninanung/2b81a5db946c26c98c573e3662a92b62

 

코드셀 문법

 

여러 줄의 주석 처리 : Ctrl+ / 하면 된다.

 

저장은 Ctrl + s

 

코드셀을 저장하거나 불러오기.

%%writefile filename.py
print("aaa")

%run filename.py

%load filename.py

 

파이썬의 자료구조

여기부터는 다시 상기시키는 것만 정리했습니다.

 

데이터 분석에서는 절대 문자 데이터와 숫자 데이터를 같은 리스트에 담지 않는다.

 

range를 for이 없이 그냥 써도 리스트로 만들 수 있다.

list(range(50,0,-4))

 

인덱스 슬라이싱

a[1:3]은 1~3 인덱스까지의 값을 출력한다.

a[:]은 전체를 가지는 것.

a[1:]은 1부터 나머지 전체

a[:3]은 0부터 3까지를 출력

 

즉, :이 뒤에 붙으면 뒤까지 전부, 앞에 붙으면 앞에 있는 거 전부를 뜻한다.

 

a[::-1]은 리스트 전체를 뒤집는다.

 

'을 포함해서 출력하고 싶으면 \을 앞에 붙여주면 된다. 여기서는 포매팅을 활용

print('\'{}\''.format(hangle[3]))

 

 

값을 삭제하려면 del을 활용할 수 있다.

 

del a[2] 하면, 인덱스 2의 값이 삭제된다.

이 경우에는 아에 pop 된다.

 

특정 값을 찾아서 삭제하려면 .remove를 활용한다.

 

실전에서는 임시 저장소 같은 역할로 자주 사용한다.

 

딕셔너리

.keys() : 키값만 조회

.values() : value만 조회

.items() : 키값 및 쌍 조회

 

소괄호가 담기는 부분은 튜플.

 

키값을 불러올 때 keys 뒤에 values가 리스트라면 슬라이싱도 가능하다.

dic['l1'][:2]

 

중첩 딕셔너리인 경우, key 값도 넣어줘야 불러올 수 있다.

dic['d1']['a'])

 

key 값을 새로 설정해주면 추가 (데이터 분석에서 정말 지겹도록 보는 방식)

dic['v2'] = 500

 

수정은 키값을 지정해주고 값을 변경하면 된다.

del을 이용하면 삭제도 할 수 있다.

del dic['v2']

 

딕셔너리도 값 할당이 가능하다.

a1, a2, a3 = dic.values()

 

ctrl 누르고 화살표 누르면 끝까지 빨리 간다.

 

실전에서는 딕셔너리로 데이터 프레임을 만들 때 변환한다.

JSON 형식이 파이썬에서 딕셔너리와 호환된다.

 

랜덤 추출

import random

n = 10
for i in range(n) :
    rdnum = random.randint(0, 100)  # 0~100 사이 정수 중 랜덤으로 추출
    print(rdnum)

random 모듈로 랜덤한 것들을 추출한다.

 

while의 쓸모는 입력값을 계속 받았을 때 활용된다.

 

AI에서는 미분, 선형대수, 확통이 필요하다.

 

현장에서는 아무것도 모르는 사람들과 소통하고 요구사항을 들어줘야 한다.

그렇기에 설명하는 방식이 제일 중요하다.

 

롱런은 건강관리를 잘 해야 한다.

 

any() 함수는 조건을 쓸 떄 편하다.

all()은 다 맞았을 때, any()는 하나라도 맞았을 떄.

 

math, korean, history= 100,80,70
ans =[math<70,korean<70,history<70]
print(ans)

a = (math+korean+history)/3

print(a)
if any(ans) or a<=75:
    print('fail')
else:
    print('pass')

 

any를 쓰면 True False로 

 

코드를 하이라이트하고 괄호를 넣으면 양쪽에 괄호가 생긴다. -> 이건 하는 방법을 다시 봐야겠다.

드래그 + (

다른곳에선 다 작동하는데 쥬피터 랩스에서만 작동하질 않는다. 왜 그런지 모르겠다..

 

수정 : 세팅을 고쳤더니 된다!

notebook의 auto brakets를 썼더니 된다.

 

입력

입력받을 때 전체를 입력받고 싶다면 *

입력된 데이터 타입은 tuple이다.

*은 함수에도 사용할 수 있다.

def numbers(*nums) :
    print(nums, type(nums))

 

sys에서 import sys.stdin.readline()을 쓰면 줄이 나뉘어져 있을 때 input보다 더 빠르다.

 

여러 개의 입력 매개변수는 함수를 사용한다.

 

 

# 함수 출력 : print
a1 = numbers1(1, 2, 3)
print(a1)

print('-'*20)

# 함수 출력 : return
a2 = numbers2(1, 2, 3)
print(a2)

 

return을 쓰면  추가받는 입력함수에서도 입력받는다.

 

에라토스테네스의 체로 소수를 출력할 수 있다.

 

함수와 예외처리

함수를 만드는 두 가지 목적

복잡한 코드 단순화

특정 기능 별로 모듈화

 

여러 개의 숫자를 입력받을 떄는 *num을 쓰는게 편하다.

def calculator(*num) :
    summ = sum(num)
    mult = sum(num)/len(num)
    return summ, mult

print(calculator(1,2,3))

 

함수에서 예외처리를 미리 해주는 건 중요하다.

 

except에 해당 에러를 명시해줄 수도 있다.

try:
    print("True")
except ValueError:
    print("False")

 

혹은 오류 전체를 표시해줄 수도 있다.

except Exception as err:
        print("오류:", err)

 

from datatime import datetime

datetime 함수로 날짜를 불러올 수 있다.

 

datetime.days는 일자.

datetime(년,월,일)로 하면 datetime으로 표시해준다.

 

 

반응형