본문 바로가기
AI 수학

Numpy

by 자동매매 2026. 2. 1.

sum / prod함수

import numpy as np

b = np.array([6, 1, 5, 4, 3, 2])

print(np.sum(b))  # 총합
print(np.prod(b))  # 총곱

 

random모듈

1. 정수 난수 생성

0부터 6미만의 정수의 난수 생성

a=[np.random.randint(6) for i in np.arange(100)]
print(a)
[3, 1, 0, 5, 4, 4, 4, 0, 5, 1, 0, 3, 0, 3, 2, 3, 4, 0, 4, 2, 1, 4, 1, 0, 1, 5, 4, 3, 2, 5, 2, 3, 4, 0, 1, 4, 4, 1, 5, 5, 4, 5, 4, 3, 2, 2, 5, 2, 4, 4, 4, 1, 2, 4, 0, 1, 5, 1, 5, 2, 5, 5, 1, 2, 1, 0, 1, 3, 5, 4, 3, 3, 5, 0, 5, 5, 2, 3, 0, 3, 2, 0, 0, 1, 5, 3, 0, 2, 2, 5, 1, 3, 5, 0, 1, 5, 2, 4, 3, 0]

 

 

2. 0부터 1미만 소수의 난수 생성

import numpy as np

r_dec = np.random.rand()   # 0부터 1 사이의 소수를 랜덤으로 1개 반환
print(r_dec)
print()

a= np.random.rand(10)  # 0-1의 균일한 난수 10개 생성
print(a)
0.5597065995821088

[0.3198579  0.13625963 0.33074243 0.04914224 0.39410434 0.47833296
 0.14013471 0.44658292 0.57370728 0.39915299]

 

 

3. 정규분포를 따른 난수

x = np.random.randn(10)  # 정규분포를 따른 난수의 분포 / 10개 생성
print(x)
[ 0.10779021  0.86439309  0.6718812   0.14882203  0.66727447 -0.71514395
 -0.10984627 -2.35854795 -1.90439235  1.96721137]

 

 

 

 

NumPy에서
dot, cross, norm은 선형대수학 및 3차원 공간 계산의 핵심 함수들로, 각각 벡터의 내적, 외적, 크기(길이)를 계산합니다. 

1. numpy.dot (내적, Dot Product) 
  • 의미: 두 벡터의 대응하는 성분끼리 곱한 후 모두 더한 값(스칼라)을 반환합니다.
  • 기하학적 의미: 두 벡터가 얼마나 같은 방향을 가리키는지를 나타냅니다(코사인 유사도와 관련).
  • 사용: np.dot(a, b)
  • 특징:
    • 1D 배열(벡터): 스칼라 값 반환.
    • 2D 배열(행렬): 행렬 곱셈(Matrix Multiplication) 수행. 
python
import numpy as np
a = np.array([1, 2])
b = np.array([3, 4])
# 1*3 + 2*4 = 11
print(np.dot(a, b)) # 결과: 11
 
2. numpy.cross (외적, Cross Product) 
  • 의미: 두 3차원 벡터에 동시에 수직인 새로운 벡터를 반환합니다.
  • 기하학적 의미: 두 벡터가 이루는 평면에 수직인 방향을 구하며, 결과 벡터의 크기는 두 벡터로 이루어진 평행사변형의 면적과 같습니다.
  • 사용: np.cross(a, b)
  • 특징: 주로 3차원 공간 계산(3D 그래픽, 물리)에 사용됩니다. 
python
import numpy as np
a = np.array([1, 0, 0])
b = np.array([0, 1, 0])
# x축, y축 벡터의 외적은 z축 벡터
print(np.cross(a, b)) # 결과: [0 0 1]
 
3. numpy.linalg.norm (노름, Norm) 
  • 의미: 벡터의 크기(길이, Magnitude) 또는 벡터의 노름을 계산합니다.
  • 기하학적 의미: 원점에서 벡터가 가리키는 점까지의 유클리드 거리(2-norm)를 구합니다.
  • 사용: np.linalg.norm(a)
  • 특징: 기본적으로
    L2cap L sub 2
    𝐿2
    Norm(유클리드 거리)을 계산하지만, 옵션을 통해
    L1cap L sub 1
    𝐿1
    Norm 등으로 변경 가능합니다. 
python
import numpy as np
a = np.array([3, 4])
# sqrt(3^2 + 4^2) = 5.0
print(np.linalg.norm(a)) # 결과: 5.0
 

요약 및 비교 
함수 이름결과값기하학적 의미주요 활용
dot 내적 스칼라(Scalar) 두 벡터의 방향 유사도, 투영 코사인 유사도, 행렬 곱셈
cross 외적 벡터(Vector) 두 벡터에 수직인 벡터(면적) 3D 공간 방향, 회전, 물리
norm 크기/노름 스칼라(Scalar) 벡터의 길이(원점~좌표) 정규화, 거리 계산
이 세 함수는 데이터 과학, 머신러닝, 3D 컴퓨터 그래픽스 등에서 데이터 간의 거리를 재거나(norm), 데이터의 차원을 축소(dot), 수직 특징을 추출(cross)할 때 필수적으로 사용됩니다. 

 

 

'AI 수학' 카테고리의 다른 글

LaTex  (0) 2026.02.01
matplotlib  (0) 2026.01.31

댓글