[멋쟁이사자처럼 데이터분석] 주피터 사용법, 파이썬 기초

블체·2025년 4월 6일

Notion에서 정리한 내용을 공유용으로 옮긴 내용입니다.
양식과 구성의 어색함이 있을 수 있습니다.

04/01(화) 학습내용을 바탕으로, 당일이 아닌 추후 업로드하였음


python 장점

(강사님 개인취향ㅎㅎ)

  • 쉬움
    • 3일이면 다 배울 수 있다.
  • 일관성
    • 파이썬에서 오류가 난다 → 다른 곳에서도 똑같이 오류 발생
    • 오동작한다면 다른 문법에서도 오동작함
  • 개방형 언어
    • 다른 사람들이 만들어 놓은 라이브러리가 많다
    • 배포가 용이

주피터 노트북 사용 방법

  • 귀여운 경로 트러블
    • 처음에 열었을 때 보통 경로가 써 있는 곳에

      /

      만 있는 거임

      오류인가 했는데 알고 보니 처음은 /로 나오고 그 뒤로 경로가 붙는 것.

      나는 처음 열리는 폴더에서 바로 작업하게 해 놔서 저게 끝인 거였다 :)

    • 그 창을 닫지 마...

      그 다음 문제. 주피터는 열렸는데, NEW ipynb 안 열리는 문제 발생.

      당황해서 막 workspace 옮겨보고 하다가

      프롬프트 창을 닫으면 안 된다는 것을 처음으로 알았다!ㅋㅋㅋ

      바로바로 닫는 성격인 나 (안 그럼 자동채점은…뭐가 열렸는지 글씨가 안 보일 정도로 꽉 차는걸…안 쓰는 거 다 닫아놔야 함…)

      줌/웨일/zep/카톡/디코/실행하는 폴더 등등 이미 표시줄 꽉 차서 프롬프트 닫았는데 그게 원인이었다

      매우 다행 lolol

      그 와중에 또 거슬리는 거 싫어서 가상 데스크톱 만들어서 거기에 zep 이랑 프롬프트랑 줌 안 쓰는 창 다 넣어놓음

      앞으로도 이렇게 쓰지 않을까 싶다ㅎㅎ

  • cell : 위 사진의 나누어진 한 칸
  • 버튼 : 위/아래로 이동, 위/아래로 삽입, 삭제
  • command mode : 밖을 클릭해서 회색으로 된 상태 edit mode : 안을 클릭해서 흰색으로 되어 있고 커서 들어간 상태
  • code/markdown/raw 모드로 변경 가능
    • code mode : 코드 작성 / 왼쪽에 [ ]
    • markdown : 주석 / 왼쪽에 [ ] 가 없음

아 영문 작성창은 예쁜데 실제 업로드 글씨체가 너무 안 예뻐!!!

💡

데이터 분석 / AI 메모리 관리

  • kernel - Restart Kernel and Run All Cells : 전부 다 초기화하고 다시 실행
  • 주피터 닫고 다시 실행
  • Running - X 누르기 또는 오른쪽 Shut Down All
  • 이전 프로젝트는 무조건 SHUTDOWN 시키기
    보통 데이터 단위가 어마어마하기 때문에 (테라인 경우도 다수) 메모리 부족을 겪는 경우가 많음

주석

  • 실제 주석은 #뿐.
  • 여러 줄 주석으로 쓰는 “”” 나 ‘’’ 는 실제로는 주석이 아니라 사실 문자열
  • 데이터 메모리를 차지한다는 얘기 (주석의 def는 기본적으로 skip 하고 건너뛰어야 주석)
  • 주피터는 맨 밑의 값이 실행됨
    100
     200
    200

따라서 주피터에서

  """
  동해물과 백두산이
  마르고 닳도록
  """

이것만 쓰면
'\n동해물과 백두산이\n마르고 닳도록\n' 출력됨

뒤에 보통 코드와 print() 가 나오니 실행이 안 되는 것

 a1 = 10
 print(10)
 300

10
300


일부 제외하고 정리

식별자

  • 이름/identifier
  • 규칙 ← 지키지 않으면 문제가 발생
    • 첫 글자는 영문 대소문자/한글/_ 가능 # 숫자가 안 됨!
    • 이후 영문 대소문자/한글/숫자/_ 가능

표기 기법

  • 카멜 표기 기법 : koreanTotalAverage # 맨 앞 소문자

  • 파스칼 표기 기법 : KoreanTotalAverage # 맨 앞 대문자

  • 스네이크 표기 기법 : korean_total_average

  • 변수 : 카멜

  • 함수 : 카멜

  • 클래스 : 파스칼

  • 타입 : 파스칼 (나무위키피셜)

  • 상수 : 모든 글자를 대문자로, 스네이크

복습 방식

  • 예제 가져와서 읽어보기
  • 새로운 파일 만들기
  • 코드를 보고 이해한 순서 한글로 주석 적기
  • 주석 보고 파이썬 코드로 변환하기
  • 주석 지우기
  • 반복하기

→ 작업의 순서를 설계할 수 있는가가 중요
→ 많이 읽고 눈으로 익혀 보기
다른 사람 코딩을 볼 때도 주석 작성해 보기
→ 절대 코드부터 나가지 말 것!
실무에서는 다이어그램 기획서, 설계 문서를 보고 코딩을 하게 되고,
경력이 쌓이면 내가 설계를 하게 됨
코딩 문법은 AI가 알려 주지만, 순서 설계 능력은 키워야 함!


  • 컴퓨터 장치

    • CPU
      • 저장된 코드 가져다 씀
      • 속도 매우 빠름
    • HDD, SDD (저장장치)
      • 속도 매우 느림
      • 저장된 데이터를 CPU가 필요할 때부터 옮기기 시작하면 느림/비효율적
    • 중간 창고인 RAM에 저장
      • 단위용량당 가격 비쌈
      • 빠를수록 비싸짐
      • 전기 공급 중단되면 데이터 삭제됨
  • 프로그램 동작시

    • RAM에 저장

    • 저장된 데이터 처리

    • 처리된 결과 출력

      ※ 저장-처리-출력-저장-처리-출력 X

      한 번에 저장, 한 번에 처리, 한 번에 출력

RAM

  • RAM은 1byte 단위로 나누어져 있고, 필요하다면 벽을 뚫어서 넓게 사용하는 것 가능
  • 메모리의 주소값이 존재 (0,1,2,…) : 1byte마다 0,1,2 이런 식으로 주소값이 있음
  • 하나를 저장하면 그 자리에는 저장 X. 같은 위치에 저장하려 하면 덮어씌워짐
  • RAM에서 필요한 것
    • 위치 : 이름 지정. 그럼 VM이 알아서 판단하여 크기 파악해서 위치 정하고 기억.
    • 크기 : 파이썬은 정해져 있음.
    • 용도 : 개발자 입장에서는 정해져 있음.
  • 따라서 이름만 정하면 됨. (보통은 이름,타입이지만 파이썬은 타입 필요 X)

리터럴

print('정수 :', 100)
print('실수 :', 11.11)
print('문자열 :', '하하하')
print('참 :', True)
print('거짓 :', False)
print('지수 :', 2e5)
print('복소수 :', 10 + 8j)
print('세자리 마다 표시 :', 123_456_789)
print('없음 :', None)
  • 2e5 : 2×1052×10^5
  • 세자리마다 _를 써서 구분해도 그냥 정수로 표시.
    • 맨 앞, 뒤는 불가능
      print(_123) # 오류 발생
      print(123_) # 오류 발생
      아 역슬래시로 강제 기울임 마크다운 막을 수 있네
      위에 _123 표시 때문에 강제로 폰트 기울어짐...ㅋㅋㅋ

    • 정수 부분에만 가능
      print(123_456.789) # 가능 (정수 부분에만 _ 있음)
      print(123._456) # 오류 발생 (_가 소수점 뒤에 있음)
    • 123__456 (_ 연달아 두 개 이상)은 안 됨
# type을 쓰면 값의 타입을 파악할 수 있다
print(type(100))
print(type(11.11))
print(type('하하하'))
print(type(True))
print(type(False))
print(type(2e10))
print(type(10 + 8j))
print(type(123_456_789))
print(type(None))

<class 'int'>
<class 'float'> → 실수
<class 'str'>
<class 'bool'> → 불리안
<class 'bool'>
<class 'float'>
<class 'complex'>
<class 'int'>
<class 'NoneType'>

변수

# 파이썬은 변수의 선언과 동시에 저장할 값을 지정해준다.
# = : 대입연산자. 오른쪽에 있는 값을 왼쪽의 변수에 저장하는 작업을 수행한다.
a1 = 10
a2 = 11.11
a3 = '안녕하세요'
# 여러 변수에 같은 값을 저장하고자 한다면...
a5 = a6 = a7 = 100
print(a5)
print(a6)
print(a7)
# 각 변수에 저장될 값을 각각 다를 경우 다음과 같이 하는 것도 가능하다.
# 여기에는 tuple 이라는 것과 관련된 비밀이 숨어 있다.
a8, a9, a10 = 100, 200, 300
print(a8)
print(a9)
print(a10)
  • 파이썬에서는 쉼표(,)로 구분된 값들이 자동으로 튜플로 간주됨
  • (a8, a9, a10) = (100, 200, 300)a8, a9, a10 = 100, 200, 300 은 동일
  • a8, a9, a10 = 100, 200, 300
    (a8, a9, a10) = 100, 200, 300
    a8, a9, a10 = (100, 200, 300)
    전부 다 가능.
  • 파이썬 3.6 부터 변수에 자료형을 명시할 수 있다. (int, bool 같은 데이터의 타입)
    변수를 정의할 때 자료형을 명시하면 값을 지정하지 않아도 된다.
    단 변수를 사용하기 전에 반드시 값을 저장해야 한다.

  • 변수에 자료형을 붙여 주는 이유

  1. 변수를 선언할 때 최초의 값을 지정해주고 싶지 않을 때 -> 그냥 값을 0 같은 값을 넣어주면 된다.
  2. 변수의 타입을 명시적으로 표현하고 싶을때 -> 다른 타입의 값을 저장할 수 있기 때문에 별 의미가 없다.

a11:int

a11 = 100
print(a11)

a11 = 11.11
print(a11) # (출력하면 그냥 오류 없이 출력돼서 의미가 없음.)
  • 최초의 값을 지정해주고 싶지 않을 때
    1. 함수 중간에 값이 결정될 때 → 초기값 0 등으로 설정
    2. 반복문에서 특정 조건이면 출력되는 변수 → 초기값 0, -1 등으로 설정
    3. 클래스의 인스턴스 변수 → 생성자 __init__() 사용
    4. 여러 경우 중 특정 조건이 만족될 때 값이 정해지는 경우 (근데 미리 선언하고 싶음) → “Invalid” 같은 걸 대신 넣어서 오류시 출력되도록 함

연산자

산술 연산자

    • : 더하기
    • : 빼기
    • : 곱하기
  • / : 나누기. 결과가 실수
  • // : 나누기. 결과가 정수 (몫)
  • % : 나머지
  • ** : 거듭제곱 → 2^3

비교 연산자

  • 좌측의 값이 우측값과 비교하여 어떻다, 라는 연산을 수행한다.
  • 결과는 True나 False로 나온다.
  • "==" : 좌측의 값이 우측의 값과 같은가
  • "!=" : 좌측의 값이 우측의 값과 다른가
  • ">" : 좌측의 값이 우측의 값보다 큰가
  • "<" : 좌측의 값이 우측의 값보다 작은가
  • ">=" : 좌측의 값이 우측의 값보다 크거나 같은가
  • "<=" : 좌측의 값이 우측의 값보다 작거나 같은가

증감 연산자(대입 연산자)

  • ++, -- : 변수에 저장되어 있는 값을 1 증가시키거나 1 감소시키는 연산자이다. 파이썬은 지원하지 않는다.
  • +=, -=, *=, /=, //=, %=, **= 연산자를 사용할 수 있다.

취향에 안 맞으면 쓰지 않아도 됨

논리 연산자

  • 연산자 좌측과 우측에는 참, 거짓이 결과인 연산식이 존재해야 한다.
  • and : 좌측과 우측이 하나라도 False면 최종 결과는 False가 된다.
  • or : 좌측과 우측이 하나라도 True면 최종 결과는 True가 된다.
  • not : 우측의 결과가 True면 False로, False면 True로 바꿔준다.
v1 = 10
v2 = 20
print(not v1 < 5)
print(not v1 > 5)
True
False

10<5 가 False이므로 → True

10>5가 True이므로 → False


당연히 vscode로 할 거라 생각했는데 주피터라는 새로운 환경에서 적응하느라 어색한 감이 더 크다.

초반이라 주피터 가지고 놀기에 좀 더 몰입한 듯...

그리고 새로운 걸 배우기 시작하면 왠지 당연하게 단축키부터 외우게 된다.

한글로 문서 편집, 검수할 당시 진짜 온갖 단축키에 매크로 다 달고 살아서 그런가 효율적이고 빠르지 않으면 못 견디게 되어버림.

profile
벨로그 적응할 수 있을까

0개의 댓글