[numpy] np.linspace, np.meshgrid np.logspace
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
Parameters :
start : array_like
stop : array_like
num : int, optional
endpoint : bool, optional
retstep : bool, optional
dtype : dtype, optional
axis : int , optional
Returns :
samples : ndarray
step : float, optional
start ~ stop 까지 num 개수만큼 intervel 을 생성한다.
endpoint =False : stop 을 포함하지 않고 num 개수 만큼 intervel 을 생성한다.
retstep = True : intervel을 return 에 포함한다.
axis : 지정한 축 기준으로 num 개수의 intervel을 생성한다.
np.linspace(2.0, 3.0, num=5)
#array([2. , 2.25, 2.5 , 2.75, 3. ])
np.linspace(2.0, 3.0, num=5, endpoint=False)
#array([2. , 2.2, 2.4, 2.6, 2.8])
np.linspace(2.0, 3.0, num=5, retstep=True)
(array([2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)
np.linspace([1,2], [3,4], 2, axis=1)
#array([[1., 3.],
# [2., 4.]])
numpy.meshgrid(*xi,
copy=True,
sparse=False,
indexing='xy')
Parameters :
*xi : 1-D array_like
indexing : 'xy' or 'ij' , optional
sparse : bool , optional
copy : bool, optional
Return :
X1 ... Xn : array_like , Xi.shape = ( len(x1) , len(x2), len(x3) ... , len(xn) )
각 축의 벡터 x1 ~ xn 개수 N1 ~ Nn 개 만큼 grid로 생성한다.
X1, X2, X3, ... , Xn = np.meshgrid(x1, x2, x3, ... , xn, indexing='ij')
Xi.shape = ( N1, N2, N3, ... , Nn )
Xi[0] = xi[0] * np.ones([N1, N2, ... , Ni-1, Ni+1, ... , Nn])
Xi[1] = xi[1] * np.ones([N1, N2, ... , Ni-1, Ni+1, ... , Nn])
...
indexing='ij' 로 설정하면, xx.shape = ( N1 ~ Nn )으로 지정되고,
indexing = 'xy' 로 설정하면 ( 기본값 ) xx.shape = ( N2 , N1 , N3 ... Nn ) 으로 앞 2축이 변경된다.
copy = False 일 경우, xi = Xi 으로 지정된다.
sparse = True 일 경우, Xi.shape = ( 1, 1, ... , Ni , ... , 1 )으로 지정된다.
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)
Parameters :
start : array_like
stop : array_like
num : integer , optional
endpoint : bool, optional
base : array_like , optional
dtype : dtype
axis : int, optional
Returns :
samples : ndarray
start ~ stop 까지 num 개수만큼 base log scale 로 interval 을 생성한다.
endpoint 는 마지막 stop을 포함시킬지 여부이다.
각 원소의 스텝사이즈는 ln(samples) / ln(base) 으로 지정된다.
np.logspace(2.0, 3.0, num=4)
#array([ 100. , 215.443469 , 464.15888336, 1000. ])
step = np.log(samples) / np.log(10.)
#array([2. , 2.33333333, 2.66666667, 3. ])
10 ** step
#array([ 100. , 215.443469 , 464.15888336, 1000. ])
지수를 linear space 한 것과 동일하다.
np.logspace(2., 3., num=4) == base ** np.linspace(2., 3., num=4)