오답노트

[Numpy] 특정 범위의 값을 가지는 N차원 배열 생성 본문

Python/Numpy

[Numpy] 특정 범위의 값을 가지는 N차원 배열 생성

권멋져 2022. 7. 7. 18:08

arange

파이썬에서 range 함수와 같은 역할을 한다.

인자를 1개 입력하면 0부터 입력한 수 미만까지 배열을

인자를 2개 입력하면 첫번째 입력한 수 부터 두번째 입력한 수 미만까지 배열을

인자를 3개 입력하면 첫번째 입력한 수 부터 두번째 입력한 수 미만까지 첫번째 입력한 수의 세번째 입력한 수의 간격만큼의 배열을 반환한다.

 

# arange
arr = np.arange(9)
print(arr)

'''''''
[0 1 2 3 4 5 6 7 8]
'''''''

arr = np.arange(3,9)
print(arr)

'''''''
[3 4 5 6 7 8]
'''''''

arr = np.arange(3,15,3)
print(arr)

'''''''
[ 3  6  9 12]
'''''''

arr = np.arange(stop = 15, start = 3, step = 3)
print(arr)

'''''''
[ 3  6  9 12]
'''''''

linspace

arange 함수와 비슷해보이지만, 차이점으로는 stop 미만이 아닌 이하의 수를 출력한다는 것step이 아닌 개수를 인자로 받는다는 점에서 다르다.

또 linspace 함수로 만들어진 행렬의 원소 마다의 차이는 일정한 간격을 이루고 있다.

 

# linspace
arr = np.linspace(0,100,11)
print(arr)

'''''''
[  0.  10.  20.  30.  40.  50.  60.  70.  80.  90. 100.]
'''''''

arr = np.linspace(0,100,250)
print(arr)

'''''''

[  0.           0.40160643   0.80321285   1.20481928   1.6064257
   2.00803213   2.40963855   2.81124498   3.21285141   3.61445783
   4.01606426   4.41767068   4.81927711   5.22088353   5.62248996
   ....
    94.37751004  94.77911647  95.18072289  95.58232932  95.98393574
  96.38554217  96.78714859  97.18875502  97.59036145  97.99196787
  98.3935743   98.79518072  99.19678715  99.59839357 100.        ]
  
'''''''

 

logspace

linspace와 비슷하다. 차이점은 linspace의 원소간의 간격이 일정하다면, logspace는 간격이 log이다.

또 base 옵션을 통해 log의 밑을 결정할 수 있다. 기본은 e(지수)로 되어있다.

 

# logspace
arr = np.linspace(1,10,10)
print(arr,'\n')

# [ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10.] 

arr = np.logspace(1,10,10, base = 2)
print(arr)

# [   2.    4.    8.   16.   32.   64.  128.  256.  512. 1024.]


arr = np.logspace(1,10,10)
print(arr)

# [1.e+01 1.e+02 1.e+03 1.e+04 1.e+05 1.e+06 1.e+07 1.e+08 1.e+09 1.e+10]