아나콘다 설치하기

    anaconda install

    https://www.anaconda.com/


    주피터 노트북 실행하기

    jupyter notebook

     

     

    주피터 실행 단축키

     

     

    텍스트 입력

    셀 사이에 주석 대신 텍스트로 입력 가능.

    Cell  → Cell Type → Markdown

     


    NumPy(Numerical Python)

    • 제공
      • 빠르고 효율적인 다차원 배열 객체 ndarray
      • 배열 원소를 다루거나 배열 간의 수학 계산을 수행하는 함수
      • 디스크로부터 배열 기반의 데이터를 읽거나 쓸 수 있는 도구
      • 선형대수 계산, 푸리에 변환, 난수 생성기
      • 파이썬 확장과 C, C++ 코드에서 NumPy 의 자료 구조에 접근할 수 있음
    • 대용량 데이터 배열을 효율적으로 다룰 수 있음.
      • 내부적으로 데이터를 다른 내장 파이썬 객체와 분리된 연속된 메모리 블록에 저장
      • 내장 파이썬의 연속된 자료형들보다 더 적은 메모리 사용
      • 파이썬 반복문을 사용하지 않고 전체 배열의 복잡한 계산 수행
    • 배열에 가지고 있는 것을 사용하기 위한 라이브러리.
    • Numpy는 배열이 가장 중요함!

     

     

     

    import numpy as np
    my_arr = np.arange(1000000)
    my_list = list(range(1000000))

    np.arange( ) → 배열 타입으로 가져옴

    list(range( )) → 리스트 타입으로 가져옴.

     

     

     

     

    두 코드로 for문을 돌렸을 때 실행 속도에 차이를 확인할 수 있다.

     

    my_arr 는 배열 타입

    my_list 는 리스트 타입

     

    배열 타입이 대용량 데이터를 처리할 때 가장 효율적인 방법!

     

     

     

     

     

     

    배열 타입으로 처리

     

     


     

    배열의 연산처리

    • list와 차이점
      • list는 여러 타입을 지원하지만 ndarray는 하나의 데이터 타입만 가능 → 그래서 연산이 빠르다!
      • ndarray는 알아서 하나의 타입으로 형변환
      • C의 array와 동일
    • 생성하기
      • np.array함수를 이용하여 ndarray 형태로 변환
      • a = [1,2,3,4,5] ← 리스트 형태
      • a_ndarray = np.array(a, int)
    • 파이썬은 배열 자료형을 제공하지 않으므로 배열의 표준 패키지는 numpy이며 배열 자료구조 ndarray를 제공함
    • 벡터화 연산을 통해 간단한 코드로 복잡한 선형대수 연산
    • a_ndarray.shape #크기반환
      • a_ndarray.dtype #타입반환
      • a_ndarray.ndim #몇 차원인지 반환
    • 소수점까지 있어야 정확한 Y값을 예측가능하므로 float사용
      • a_ndarray = np.array(a, dtype = np.float32)

     

     

    *백터화 연산: 행, 열 연산을 의미

    [ 1, 2         [ 1, 1      [ 2, 3

      3, 4    +     1, 1        4, 5

      5, 6 ]         1, 1 ]      6, 7 ]

     

     

     

    배열의 연산처리

    data * 10을 실행했을 때 그 값은 data에 들어가지 않음.

    data * 10 데이터를 저장하고 싶을 때는 다른 배열에 저장해주어야 함.

    ex) data1 = data * 10

     

     

     

    배열의 연산처리

     

     

     

     

     

    리스트를 배열로 선언

    파이썬 배열
    파이썬 배열

    data1의 리스트를 arr1 배열로 바꾸는 과정이다.

    arr1로 바꿀 때 타입(int, ...)으로 선언을 하지 않으면 디폴트 값 → float

     

    배열을 int형으로 선언하려면 np.array(data1, int)로 선언해주면 됨!

     

     


    배열의 차원

    배열의 차원

    배열은 어느 위치를 가르키는지, 그 위치에서 배열을 추출하는 것이 중요함

     

     


     

    array 생성

    zeros : 0으로 가득찬 array 생성

    zreos array 생성

     

    ones : 1로 가득찬 array 생성

    ones로 array 생성

     

    empty : 초기화되지 않은 값으로 생성

    empty array 생성

     

    something(ones, zeros...)_like : _like는 지정된 array의 shape 크기만큼 지정된 값으로 채워 array 반환

    something_like로 array 생성

     

     

     

     

     

    range() 와 numpy.arrange()의 차이

    • range(10) : 파이썬 함수로 정수를 리스트로 반환
    • np.arange(1,10,0.5) : 정수, 실수를 배열로 반환
      • 데이터 분석을 할 때는 실수값으로 많이 분석을 함! -> 실수로 이용을 하는 경우 실수값으로 지정

     

     


    백터화 연산

    배열의 원소에 대한 반복연산을 하나의 명령어로 처리

     

     

     

    파이썬에서 배열을 쓰지 않을 때는 for문으로 각각 값을 처리해야 했다. → 백터로 하면 더욱 편하게 할 수 있음.

    배열 x, 리스트 data를 비교했을 때

    x * 2 했을 때는 배열의 값이 *2씩 증가했지만

    data * 2 했을 때는 리스트가 2개 만들어지는 차이점이 있다.

     

     

     

     

     

     

    배열에 조건을 주어 비교할 수 있다. 

     

     

     


    인덱싱, 슬라이싱

    인덱싱

    내가 원하는 값을 가리킬 때 사용함.

    인덱스 값은 0부터 시작한다,

    arr[5:8] index 5~7까지의 정보

    배열의 인덱싱

     

     

     

     

    슬라이싱

    무언가를 자른다는 의미로 (리스트, 튜플, 문자열 등)에 부여된 번호를 이용해 연속된 객체에 일부를 추출

    배열의 슬라이싱

     

    arr_slice를 했을 때 데이터를 새롭게 자르는 것이 아닌 일부를 추출해서 가르키는 것. 

     

     

     

     

    copy() : 데이터를 복사할 때 사용하는 함수.

    copy() 함수

    slice를 해도 내가 원하는 데이터만 남지 않기 때문에 slice를 한 데이터를 copy() 함수로 사용하여 데이터를 추출한다.

    copy() 함수를 사용하면 원본의 함수에 영향이 가지 않음.

     

     

     

     

     

    배열 값 넣기

    arr3d = np.array([[[1, 2, 3],[4, 5, 6]],[[7, 8, 9], [10, 11, 12]]])
    arr2d = np.array([[1, 2, 3], [4, 5, 6],[7, 8, 9]])

     

     

     

     

     

    불리언값으로 선택하기

    • 인덱스 배열의 원소가 True, False로 이루어짐
    • 배열의 크기가 원래 ndarray 객체 크기와 같아야함

     

    a= np.array([0,1,2,3,4,5,6,7,8,9])
    idx = np.array([True, False,True, False,True, False,
                    True, False,True, False])
    a[idx]

    boolean 값으로 인덱스 위치에 True, False 값을 줘서 데이터를 가져오는 여부를 지정할 수 있음.

    a 배열과 true, false 값이 담긴 인덱스 배열을 넣어 true에 해당되는 인덱스 값만 추출.

     

     

     

    Blooean 값으로 배열 값 가져오기

     

     

     

    조건에 맞는 값을 가져오고 싶을 때 사용.

    ex) 안에 들어있는 값이 짝수인지 알고 싶을 때, 

     

     

     

    조건에 따라 True, False 값이 나옴.

    True, False 값으로 내가 원하는 조건의 인덱스 데이터를 가져올 수 있음.

     

     

     

    names 배열에 'bob'과 같은 데이터가 있으면 True를 나타낸다.

     

    data[name == 'bob'] → 이 조건을 주게 된다면

    data는 7개의 행을 가지고 있으며, names 배열의 조건 또한 7개이기 때문에

    True로 되어있는 인덱스 위치의 data 값을 가져올 수 있다.

     

    또한, 아래처럼 조건을 2개씩 지정할 수 있음.

     

    'ABC 부트캠프 > 파이썬 라이브러리' 카테고리의 다른 글

    10일차 - Matplotlib, Seaborn  (0) 2023.04.10
    9일차 - Pandas 2  (0) 2023.04.02
    8일차 - Pandas 1  (0) 2023.03.27
    7일차 - Numpy 2  (0) 2023.03.23

    댓글