ndarray 랜덤한값 생성

반응형
    반응형

    numpy의 random모듈을 이용해 랜덤한 값들을 생성하는 방법에 대해 알아보겠습니다.

    먼저 numpy를 np로 바꿔서 쓰겠습니다.

    import numpy as np

    rand 함수

    np.random.rand(2,3)

    rand 함수는 0,1 사이에서 랜덤하게 숫자를 가져와 ndarray를 만듭니다.

    rand가로 안에는 형태를 써주면 ndarray가 생성됩니다.

     

    randn 함수

    np.random.randn(2,3)

    randn 함수는 정규분포로 샘플링된 된 ndarray를 생성합니다. 그래서 -1에서 1 사이의 값들이 랜덤하게 나오면서 생성합니다.

     

    randint 함수

    np.random.randint(1,100,size=(1,5))

    randint에 커서를 놓고 shift+tap을 누르면 다음과 같이 어떤 파라미터를 사용하면 되는지 나옵니다.

    randint는 low,high, size,dtype 으로 되어있네요. 위의 코드는 설명대로 작성됐다면 1에서 100중에 size=(1,5)로 ndarray가 생성될 것을 알 수 있습니다.

     

    seed 함수

    머신러닝이나 딥러닝 또는 실험체에 대한 통계를 파이썬으로 하면 랜덤한 값을 넣어 실행하게 됩니다. 코드진행을 시켰을 때 오류가 발생하면 오류를 고치고 오류없이 잘 되는지 확인하는 경우가 생깁니다. 이때, 랜덤한 그 값을 고정하지 않고 다른 값을 하게 되면 값의 변경으로 오류체크를 온전히 할 수 없게 될 수도 있습니다. 그래서 고정된 랜덤값이 필요한데 seed함수를 이용해 랜덤값을 고정합니다. 

    np.random.seed(1)
    np.random.randn(2,3)

    seed를 입력한후 (가로안에 숫자는 아무거나 정하면 됨) 바로 밑에 원하는 값을 넣습니다. 그러면 np.random.randn(2,3)은 고정됩니다. 하지만 seed를 쓰지 않고 쓰면 새로운 랜덤값이 생성됩니다.

    np.random.randn(2,3)
    

     

    choice 함수

    주어진 값에서 아무 숫자를 뽑아 쓰는 것을 하려 한다면 choice 함수를 사용합니다.

    x= np.array([1,2,3,4,5,6,7.7,8.8,9.9])
    np.random.choice(x,size=(2,2),replace=False)

    x에서 (2,2) 형태에 맞춰 숫자를 뽑아 ndarray를 생성합니다. 여기서 x는 반드시 ndarray일 필요는 없고 list여도 상관없습니다.

     

    정수의 끝만 정하고도 choice함수를 쓸 수 있습니다. 100까지의 숫자에서 (3,4)모양으로 생성해보겠습니다.

    np.random.choice(100,(3,4))

    정수로 나타낸다면 리스트를 따로 작성하지 않아서 간편하게 생성할 수 있습니다.


    이 밖에 더 많은 매소드가 있지만 가장 많이 쓰는 것 위주로 설명해보았습니다.

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

    [Numpy] 연산,통계,집계함수  (2) 2020.05.21
    Reshape  (0) 2020.05.19
    ndarray 인덱싱,슬라이싱  (0) 2020.05.17
    ndarray 생성하기  (0) 2020.05.13
    Numpy 란?  (7) 2020.05.11

    댓글

    Designed by JB FACTORY

    ....