여기 (링크)에서 PyTorch에서 제로 텐서, 원 텐서 등을 만드는 방법을 알아보았다.
Numpy에서도 마찬가지 작업을 수행할 수 있다.
딥러닝 보다는 머신러닝의 측면에서 데이터를 다룰 때 주로 넘파이를 쓰기 때문에 알아두면 좋다고 생각해서 적는다.
다음은 지정된 값으로 원하는 모양 shape의 텐서를 만드는 방법들이다.
- zeros는 0으로
- ones는 1로
- full은 지정된 값으로
- empty는 uninitialized values로 채워진다.
import numpy as np
a = np.zeros((2,3))
b = np.ones((2,3))
c = np.full((2,3),2)
d = np.empty((2,3))
print(a)
print(b)
print(c)
print(d)
>>
[[0. 0. 0.]
[0. 0. 0.]]
[[1. 1. 1.]
[1. 1. 1.]]
[[2 2 2]
[2 2 2]]
[[4.66233324e-310 0.00000000e+000 0.00000000e+000]
[0.00000000e+000 0.00000000e+000 0.00000000e+000]]
다음은 지정된 값으로, 원하는 텐서와 똑같은 shape의 텐서를 만드는 방법들이다.
아래는 (2, 3) 형태의 tensor d의 모양을 그대로 복사하는 코드다.
e = np.zeros_like(d)
f = np.ones_like(d)
g = np.full_like(d,3)
h = np.empty_like(d)
print(e)
print(f)
print(g)
print(h)
>>
[[0. 0. 0.]
[0. 0. 0.]]
[[1. 1. 1.]
[1. 1. 1.]]
[[3. 3. 3.]
[3. 3. 3.]]
[[4.66233377e-310 0.00000000e+000 0.00000000e+000]
[0.00000000e+000 0.00000000e+000 0.00000000e+000]]
- zeros_like는 0으로
- ones_like 는 1로
- full_like 은 지정된 값으로
- empty_like 는 uninitialized values로 채워진다.
메소드 이름이 PyTorch랑 동일해서 기억하기 편할듯 하다.
Numpy에서 identity matrix 단위 행렬을 만드는 방법은 아래와 같다.
np.identity(3)
>> array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
References:
https://algopoolja.tistory.com/37
https://numpy.org/doc/stable/reference/generated/numpy.zeros_like.html
https://jimmy-ai.tistory.com/84
https://numpy.org/doc/2.1/reference/generated/numpy.identity.html
'AI Codes > Numpy' 카테고리의 다른 글
Numpy Random Number Generating (1) | 2025.04.20 |
---|---|
Numpy Products (0) | 2025.04.20 |