ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Numpy : 1차원과 2차원 벡터의 생성
    Let's Code/Python 2019. 9. 30. 14:30

     

    파이썬은 데이터 사이언스, 머신 러닝, 웹 프로그래밍 등 다양한 목적에 맞는 라이브러리Library가 구비된 다목적 언어general purpose language이다. 이 때문에, 그리고 오픈 소스라는 장점 때문에 파이썬은 광범위하게 사용될 수 있다.

     


    파이썬의 라이브러리

    • Numpy: 선형대수를 위한 라이브러리
    • Matplotlib: 시각화를 위한 라이브러리
      • seaborn: Matplotlib 위에 설치할 수 있으며, 시각화 자료를 보기 좋게 다듬을 수 있다
    •  Statsmodels: 통계를 위한 라이브러리
    •  Sckit-learn: 머신 러닝을 위한 라이브러리
    • Tensorflow: 구글이 제작한 딥러닝을 위한 라이브러리

    이 중 우리는 Numpy를 알아보려 한다.

     


    Numpy

    import numpy as np

    라이브러리를 처음 사용할 때 쓰는 관행어이다. 

    이 후 쓰는 Method는 np.array처럼 np.** 꼴로 나타난다.

     

    Numpy는 선형대수에 최적화되어 있기 때문에, 주로 벡터를 생성하기 위해 사용한다.

     

     

    1차원 벡터

    a = np.array([1,2,3,4])
    print(a)
    # [1 2 3 4]
    
    np.ndim(a)
    # 1 
    # 1차원의 벡터라는 뜻
    
    a.shape
    # (4, )
    # 4개의 원소가 (,) 형태로 있다는 것을 알 수 있다. 1차원이기 때문에 , 만
    
    a.shape[0]
    # 4
    
    x = np.arange(-5.0, 5.0, 0.1) #-5.0에서 5.0 전까지 0.1 간격 배열 생성

    np.array ()

    :A를 np를 이용하는 [1,2,3,4]의 Array로 정의하자. [ ] 안에 원소를 넣으면 이를 벡터화한다.

     

    np.ndim( )

    : 생성된 벡터의 차원을 말해준다. 여기서는 1차원이므로, 1이라는 값이 도출된다.

     

    .shape 

    (행의 개수, 열의 개수) 형태로 나타난다. 여기서는 4개의 행만 있지 열이 존재하지 않으므로 4 다음에 , 로 이를 나타내고 있다.

     

    .shape[0]

    행의 개수만 알고 싶을 때는 슬라이싱 해준다.

     

    np.arange(시작점, 종점, 간격)

    x는 시작점, y는 종점, z는 간격을 의미한다. 위 식에서는 -5.0에서 5.0까지 0.1간격의 배열을 생성한다.

     

    x = np.array([1.0, 2.0, 3.0])
    y = np.array([2.0, 4.0, 6.0])
    
    print(x + y)
    print(x - y)
    print(x * y)
    print(x / y)

    1차원 벡터는 간단하게 연산할 수 있다.

     

     

    2차원 벡터

    B = np.array([[1,2], [3,4], [5,6]])
    print(B)
    # [[1 2]
    # [3 4]
    # [5 6]]
    
    np.ndim(B)
    # 2
    
    B.shape
    # (3, 2)

    2차원 벡터는 [ ] 안에 여러 개의 [ ] 가 중첩되어 나타나는 것을 알 수 있다.

     

    np.array( ) 를 통해 2차원 벡터를 생성한다.

     

    np.ndim( ) 를 통해 2차원 벡터임을 알 수 있다.

     

    .shape 를 통해 3x2 형태의 벡터임을 알 수 있다.

     

    a = np.zeros((2,2))   # Create an array of all zeros
    print(a)
    
    b = np.ones((1,2))    # Create an array of all ones
    print(b)
    
    c = np.full((2,2), 7)  # Create a constant array
    print(c)
    
    d = np.eye(2)         # Create a 2x2 identity matrix
    print(d)
    
    e = np.random.random((2,2))  # Create an array filled with random values
    print(e)

    [[0. 0.]

    [0. 0.]]

     

    [[1. 1.]]

     

    [[7 7]

    [7 7]]

     

    [[1. 0.]

    [0. 1.]]

     

    [[0.42812389 0.87315723]

    [0.36732048 0.68926806]]

     

    np.zeros ((x개수, y개수))

    2x2 형태의 0으로 구성된 벡터를 생성한다.

     

    np.ones((x개수, y개수))

    1x2 형태의 1로 구성된 벡터를 생성한다.

     

    np.full ((x개수, y개수), 구성하는 수)

    동일한 원소로 구성된 벡터를 생성한다.

     

    np.eye (x or y 개수)

    단위행렬을 생성한다.

     

    np.random.random ((x개수,y개수))

    무작위의 수로 구성된 벡터를 생성한다.

     

     

     


    다음에는 연산과 재구성을 정리할 계획.

    'Let's Code > Python' 카테고리의 다른 글

    파이썬 일주일 독학 후 깨달은 점들  (0) 2019.07.03

    댓글