Ellipsis 객체는 원래 ndarray의 indexing과 slicing을 도와주는 객체이다.

사이트에 적힌 원문을 번역해보면,

모든 차원을 인덱싱하기 위해 선택 튜플에 필요한 개체 수로 확장한다는 말인데.. 일단 보자!

numpy.org/doc/stable/reference/arrays.indexing.html

 

Indexing — NumPy v1.19 Manual

Indexing ndarrays can be indexed using the standard Python x[obj] syntax, where x is the array and obj the selection. There are three kinds of indexing available: field access, basic slicing, advanced indexing. Which one occurs depends on obj. Note In Pyth

numpy.org

1) 단독으로 사용했을 때 arr == arr[...]
   : 왜냐하면 Ellipsis 객체로 모든 차원을 선택했기 때문이다.

2) '...' vs ':'의 차이
   : 아직 이해를 못한 것 같다...

 

3) 2D Array

 

4)  3D Array

   : '...'는 index에서 딱 한 번만 사용할 수 있다. 여러 Ellipsis를 사용하면 error가 난다.

 

'ML&AI > 관련 python, lib 문법' 카테고리의 다른 글

numpy.ndarray.astype  (0) 2021.01.27
np.linspace()  (0) 2021.01.27
np.random.rand()  (0) 2021.01.27

Numpy 배열 ndarray는 dtype으로 저장되는데, 이 dtype은 np.array()로 ndarray를 생성할 때 지정하거나 astype() method로 변경할 수 있다.

 

ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)

: ndarray의 dtype을 변경하는 함수

import numpy as np 

a = np.array([1, 2, 3], dtype=np.int64) 
print(a.dtype) # [1, 2, 3]
print(a) # int64

a = a.astype(np.float32) # 꼭 재할당을 해줘야한다
print(a.dtype) # float32
print(a) # [1. 2. 3.]

 

* dtype의 유형

int8, int16, int32, int64
unit8, unit16, unit32, unit64
float16, float32, float128
complex64, complex128, complex256
bool, unicode, object

 

'ML&AI > 관련 python, lib 문법' 카테고리의 다른 글

Ellipsis 객체, '...' in Python  (0) 2021.01.27
np.linspace()  (0) 2021.01.27
np.random.rand()  (0) 2021.01.27

np.linspace(startstopnum=50endpoint=Trueretstep=Falsedtype=Noneaxis=0)

: start를 배열의 시작값, stop을 배열의 끝값으로 하여 start와 stop 사이를 num개의 일정한 간격으로 1차원 배열로 반환

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

endpoint가 True이면 stop이 마지막 sample이 되고, False이면 포함되지 않는다. default = True

 

np.linspace(2.0, 3.0, num=5, retstep=True)
# (array([2.  ,  2.25,  2.5 ,  2.75,  3.  ]), 0.25)

retstep가 True이면 (samples , step:sample 사이 간격)을 반환하고, False이면  step이 포함되지 않는다. default = False

 

numpy.org/doc/stable/reference/generated/numpy.linspace.htmlnumpy.org/doc/stable/reference/generated/numpy.linspace.html

 

numpy.linspace — NumPy v1.19 Manual

Return evenly spaced numbers over a specified interval. Returns num evenly spaced samples, calculated over the interval [start, stop]. The endpoint of the interval can optionally be excluded. Changed in version 1.16.0: Non-scalar start and stop are now sup

numpy.org

 

'ML&AI > 관련 python, lib 문법' 카테고리의 다른 글

Ellipsis 객체, '...' in Python  (0) 2021.01.27
numpy.ndarray.astype  (0) 2021.01.27
np.random.rand()  (0) 2021.01.27

np.random.rand()
: 표준 정규 분포(Standard normal distribution)로부터 샘플링(Sampling)된 난수를 반환한다.

 

* 난수란? 무작위로 만들어진 수열
* 표준 정규 분포란? 평균이 0이고, 표준 편차가 1인 정규분포 # N(0,1)

 

1) 인자가 1개일 때

np.random.rand(arg1)
: 1 x arg1 ndarray 반환

import numpy as np
print(np.random.rand(4))
np.random.rand(4).shape #(4,)
# [0.15362765 0.54915201 0.38309081 0.0309396 ]

 

2) 인자가 2개일 때

np.random.rand(arg1, arg2)
: arg1(행) x arg2(열) ndarray 반환

print(np.random.rand(4,3))
np.random.rand(4,3).shape #(4,3)
[[0.01304044 0.9695794  0.56967309]
 [0.70221571 0.1958122  0.08068373]
 [0.12818572 0.78272244 0.8335255 ]
 [0.11862156 0.14117875 0.35389374]]

 

3) 인자가 3개일 때


np.random.rand(arg1, arg2, arg3)
: arg1(개수) x arg2(행) x arg3(열) ndarray 반환

print(np.random.rand(4,3,1))
np.random.rand(4,3,1).shape #(4,3,1)
[[[0.60756663]
  [0.2319746 ]
  [0.11850198]]

 [[0.19399992]
  [0.27819437]
  [0.57692272]]

 [[0.61117672]
  [0.10044186]
  [0.23222601]]

 [[0.53610835]
  [0.94366013]
  [0.81449481]]]

 

print(np.random.rand(4,3,2))
np.random.rand(4,3,2).shape #(4,3,2)
[[[0.714514   0.38243509]
  [0.35858369 0.16297643]
  [0.95954249 0.55242839]]

 [[0.75944037 0.14042201]
  [0.3630711  0.66250145]
  [0.83499042 0.13780355]]

 [[0.77376779 0.34112986]
  [0.65516851 0.27008747]
  [0.54465844 0.64405539]]

 [[0.06953998 0.37572186]
  [0.3485405  0.23851377]
  [0.71324777 0.29496845]]]

 

print(np.random.rand(4,2,4))
np.random.rand(4,2,4).shape #(4,2,4)
[[[0.75432325 0.7039253  0.08521213 0.11480493]
  [0.31270955 0.31088799 0.72616086 0.06338152]]

 [[0.0716085  0.73421626 0.69906589 0.12805086]
  [0.47689292 0.00877446 0.86849906 0.04053276]]

 [[0.55914611 0.44344352 0.39613513 0.27319254]
  [0.12797766 0.86379005 0.30602653 0.96750661]]

 [[0.63060983 0.02431035 0.86995266 0.23224002]
  [0.29700202 0.64081752 0.19368442 0.0118656 ]]]

 

 

 

 

 

'ML&AI > 관련 python, lib 문법' 카테고리의 다른 글

Ellipsis 객체, '...' in Python  (0) 2021.01.27
numpy.ndarray.astype  (0) 2021.01.27
np.linspace()  (0) 2021.01.27

+ Recent posts