ndarray 생성하기

반응형
    반응형

    ndarray를 생성하는 다양한 방법을 소개하겠습니다.

    생성에 앞서 numpy를 불러오겠습니다.

    import numpy as np

    import를 하면 모듈을 불러올 수 있습니다. numpy가 잘 설치가 되었다면 아마 오류없이 불러올 수 있을 겁니다.

    앞으로 numpy를 np로 변경해서 쓰겠습니다.

     

    np.array 함수로 생성

     

    x = np.array([1,2,3,4])
    y = np.array([[2,3,4],[1,2,3]))
    print(x)
    print(y)

    ndarray는 np.array로 생성할 수 있는데 수학시간에 배운 행렬과 동일하게 생성됩니다. np.array 안에 대가로로 행렬을 표시합니다. 2차원이상일 경우에도 대가로 안에 두개의 리스트를 넣어서 생성할 수 있습니다.

     

    np.arange 함수로 생성

    np.arange(1,10,2)

    numpy에서도 파이썬의 리스트와 동일한 방법으로 arange함수를 쓸 수 있습니다. 

     

    np.ones, np.zeros

    np.ones는 주어진 모양을 1로 생성하고 np.zeors는 주어진 모양을 0으로 생성합니다.

    np.ones((3,5))

    np.ones의 가로안에 튜플로 숫자를 입력합니다. (3,5)는 3열의 5행을 뜻합니다. 가로를 먼저 쓰고 세로를 뒤에 씁니다.

     

    3차원이상으로 생성하려면 아래와 같이 합니다.

    np.ones((2,3,5))

    (2,3,5)에서 3행 5열 행렬을 2개 생성하게 됩니다. 3차원의 행렬이 되는것이죠. 4차원으로 늘리고 싶다면 앞에 숫자를 더 추가해서 (2,3,4,5) 와 같이 써주면 되겠습니다.

     

    np.zeros도 같은 방법으로 생성할 수 있습니다.

    np.zeros((3,5))

    np.zeros((2,3,5))

     

    np.empty, np.full

    np.empty는 초기값을 생성할 때 씁니다. 모든 값을 제로로 만들지 않으면서 필요한 초기값을 만듭니다.

    np.empty((4,4))

    np.full은 모두 같은 값으로 나오게 합니다.

    np.full((3,5),5)

     

    np.eyes , np.linspace

    np.eyes는 단위행렬을 생성합니다. 

    np.eyes(5)

    넣은 숫자만큼 단위행렬을 생성합니다.

     

    np.linspace는 주어진 숫자를 가지고 생성할 수 있습니다. 이 함수는 1차원만 할 수 있습니다.

    np.linspace(1,10,4)

    (1,10,4) 이면 1에서 10까지 범위에서 4개로 나누는 방식으로 생성할 수 있습니다.

    (2,3,5)라면 array([2,2.25,2.5,2.75,3.])으로 생성이 됩니다.


    마지막으로 reshape함수 설명하고 포스팅을 마치겠습니다.

    reshape는 ndarray의 형태를 바꾸기 위해서 사용합니다. 머신러닝을 하면 행렬계산을 많이 하는데 곱셈을 할때 행렬 모양이 맞아야 연속적으로 연산을 할 수 있습니다. 그럴 때 reshape를 활용하면 굉장히 좋습니다. 곱셈연산에 대한 구체적인 방법은 추후에 설명하겠습니다.

    x= np.arange(1,16)
    print(x)

    x.reshape((3,5))

    reshape를 이용해서 ndarray의 형태를 바꾸었습니다. 현재 15개의 숫자로 이루어져 있으므로 형태 변경할 때 숫자를 15개를 맞춰서 해야합니다. 그렇지 않으면 오류가 나오니 주의하시기 바랍니다.

    'Python > Numpy' 카테고리의 다른 글

    [Numpy] 연산,통계,집계함수  (2) 2020.05.21
    [파이썬] Numpy 모양 바꾸기(reshape)  (0) 2020.05.19
    ndarray 인덱싱,슬라이싱  (0) 2020.05.17
    ndarray 랜덤한값 생성  (0) 2020.05.14
    Numpy 란?  (7) 2020.05.11

    댓글

    Designed by JB FACTORY

    ....