레이블이 arange인 게시물을 표시합니다. 모든 게시물 표시
레이블이 arange인 게시물을 표시합니다. 모든 게시물 표시

2023년 9월 8일 금요일

NumPy Array 생성 함수

 NumPy에서는 다양한 방법으로 배열을 생성할 수 있는 함수들을 제공합니다. 이러한 함수들에 대해서 정리해보았슨비다.

NumPy Array 생성 함수

함수설명예제결과
np.array주어진 데이터로부터 배열을 생성np.array([1, 2, 3])[1, 2, 3]
np.zeros모든 원소가 0인 배열 생성np.zeros((2, 3))[[0., 0., 0.], [0., 0., 0.]]
np.ones모든 원소가 1인 배열 생성np.ones((3, 2))[[1., 1.], [1., 1.], [1., 1.]]
np.empty초기화되지 않은 배열 생성np.empty((2, 2))랜덤 값
np.arange주어진 범위와 간격의 배열 생성np.arange(0, 10, 2)[0, 2, 4, 6, 8]
np.linspace선형 간격의 배열 생성np.linspace(0, 1, 5)[0., 0.25, 0.5, 0.75, 1.]
np.logspace로그 간격의 배열 생성np.logspace(0, 3, 4)[1., 10., 100., 1000.]
np.eye단위 행렬 생성np.eye(3)[[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]
np.random.rand랜덤한 원소를 가진 배열 생성np.random.rand(2, 2)랜덤 값 (0~1 사이)

예제 코드

import numpy as np

# np.array 예제
a = np.array([1, 2, 3])
print("np.array:", a)

# np.zeros 예제
b = np.zeros((2, 3))
print("np.zeros:", b)

# np.ones 예제
c = np.ones((3, 2))
print("np.ones:", c)

# np.empty 예제
d = np.empty((2, 2))
print("np.empty:", d)

# np.arange 예제
e = np.arange(0, 10, 2)
print("np.arange:", e)

# np.linspace 예제
f = np.linspace(0, 1, 5)
print("np.linspace:", f)

# np.logspace 예제
g = np.logspace(0, 3, 4)
print("np.logspace:", g)

# np.eye 예제
h = np.eye(3)
print("np.eye:", h)

# np.random.rand 예제
i = np.random.rand(2, 2)
print("np.random.rand:", i)

이러한 NumPy 함수들을 사용하여 다양한 형태와 속성을 가진 배열을 쉽게 생성할 수 있습니다. 각 함수가 어떤 상황에 유용한지를 이해하면, 이부분 사용하는데 문제없을 듯 합니다.

2022년 9월 15일 목요일

Numpy Array 생성 (zeros, ones)

 

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]])