Numpy Array 생성 (zeros,ones,…)
NumPy 라이브러리는 함수에 따라 다른 값으로 생성된 초기 콘텐츠로 ndarray를 생성하는 함수들을 제공합니다. Numpy를 사용하다보면 이러한 기능이 매우 유용하다는 느낄수 있습니다. 단지, 한 줄의 코드로 많은 양의 데이터를 생성할 수 있습니다.
zeros, ones
예를 들어 zeros() 함수는 모양 인수로 정의된 차원을 가진 0의 전체 배열을 만들고, 2차원 배열 3x3을 생성하려면, 아래과 같이 사용합니다.
>>> np.zeros((3, 3))
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
비슷하게 ones() function은 유사하게 전부 1로 채워진 배열을 생성합니다
>>> np.ones((3, 3))
array([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])
기본적으로 두 함수는 float64 datatype으로 배열을 생성합니다.
arange
여기에 유용한 기능은 arange()입니다. 함수형태도 기본함수인 range와 비슷하게 생겼습니다 이 함수는 전달된 파라미터에 따라 특정 규칙에 응답하는 숫자 시퀀스로 NumPy 배열을 생성합니다. 예를 들어, 0과 10 사이의 값 시퀀스를 생성하려는 경우 함수에 하나의 인수만 전달됩니다.
>>> np.arange(0, 10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(4, 10) # 4부터 10까지 생성
array([4, 5, 6, 7, 8, 9])
>>> np.arange(0, 12, 3) # 0부터 12까지 step 3으로 생성
array([0, 3, 6, 9])
>>> np.arange(0, 6, 0.6) # 0 부터 6까지 step 0.6 (float)으로 생성
array([ 0. , 0.6, 1.2, 1.8, 2.4, 3. , 3.6, 4.2, 4.8, 5.4])
지금까지 1차원 배열만 만들었습니다. 2차원 배열을 생성하려면 arange() 함수를 계속 사용할 수 있지만 reshape() 함수와 결합됩니다. 이 함수는 모양 인수로 지정된 방식으로 선형 배열을 여러 부분으로 나눕니다.
>>> np.arange(0, 12).reshape(3, 4) # (row, colum)
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
linespace
range()와 매우 유사한 또 다른 함수는 linspace()입니다. 이 함수는 여전히 첫 번째 두 인수로 시퀀스의 초기 값과 끝 값을 취하지만 세 번째 인수는 한 요소와 다음 요소 사이의 거리를 지정하는 대신 간격을 분할하려는 요소의 수를 정의합니다.
>>> np.linspace(0,10,5) # 0 부터 10까지 5개 포인트를 생성
array([ 0. , 2.5, 5. , 7.5, 10. ])
random
마지막으로, 이미 값을 포함하는 배열을 얻는 또 다른 방법은 배열을 random값으로 생성하는 것입니다. 이것은 numpy.random 모듈의 random() 함수를 사용하여 가능합니다. 이 함수는 인수에 지정된 대로 많은 요소가 있는 배열을 생성합니다. 이 값들은 실행 때마다 다르게 나옵니다. . N-차원 배열을 만들려면 배열의 크기를 인자로 전달하면 됩니다.
>>> np.random.random(3)
array([ 0.78610272, 0.90630642, 0.80007102])
>>> np.random.random((3,3)) # 3x3 으로 random값 생성
array([[ 0.07878569, 0.7176506 , 0.05662501],
[ 0.82919021, 0.80349121, 0.30254079],
[ 0.93347404, 0.65868278, 0.37379618]])
댓글 없음:
댓글 쓰기