본문 바로가기
IT&게임/파이썬(Python)

03.넘파이(numpy) 수학 연산과 인덱싱 슬라이싱

by 푸루루 2025. 9. 24.
728x90
반응형

 

넘파이의 연산(덧셈,뺄셈,곱샘)

 

넘파이를 만약에 행렬로 인지해서 행렬곱셈을 사용 할 수도 있다. 

 

print(A*B) # 우리가 생각하는 1:1대응으로 요소별 곱셈이 됨 

print(A@B) # 수학적 행렬의 곱셈이 됨

 

비교연산자들은 다 불리언(True/False)를 반환하는데 

넘파이로 비교하게 된다면 각 요소별로 비교하여 True와 False를 리스트 형태로 반환한다. 

[] 리스트로 반환됨

 

수학적 함수를 써서 간단하게 총계 값을 계산 할 수도 있다. 

a = np.arange(8).reshape(2,4)
# 배열을 0에서 7까지 숫자를 2행 4열로 이차월 배열로 만든다.

print(a.sum()) 
# 모든 요소의 합계 

print(a.mean())
# 평균

print(a.min())
# 최솟값

print(a.max())
# 최댓값 

print(a.cumsum())
# 누적값 => 누적합의 형태를 리스트로 반환함 특이하네

print(a.argmax())
# 최댓값의 index (위치)

 

 

넘파이의 배열의 인덱싱과 슬라이싱 

 

인덱싱과 슬라이싱 참 헷갈리지만 중요하다. 

 

파이썬은 기본적으로 인덱스의 숫자는 0부터 시작한다. 

 

즉 [1,2,3,4] 배열의 순서는 0,1,2,3이라는 것이다.  배열의 위치를 인덱스(다루는걸 인덱싱)

 

이런걸 쪼개고 위치파악하고 슬라이스하는 걸 슬라이싱이라고 한다. 

 

a= np.array([1,2])

print(a[0]) # a의라는 배열의 첫번째 인덱스를 출력하라는 뜻이므로 1이 출력된다.

 

주의할 점은 슬라이싱할때 만일 

print(a[0:3])으로 표기한다면, 이는 뒤에 3을 미만으로 갖고온다. 즉 0,1,2번째 3개만 갖고온다. 

-> 파이썬은 대부분 '미만'을 기준으로 되어 있는듯  

 

# 더 간단하게 하자면 
print(a[0:3])
# 아래와 같이 빈칸으로 하면 처음부터 3까지 반환한다 즉 위에것과 동일한
print(a[:3])

 

좀더 심화 과정을 배워본다. 

 

만일 내가 a에 2차 배열을 생성하고 단순하게 비교연산자를 비교한 후 b라는 변수에 담으면 

 

b에 리스트 형태로 각각 요소들이 4보다 큰지 비교를 한 후 T/F 리스트를 반환한다. 

 

728x90

댓글