자신에게 친절할 것 :)

Data Science/Numpy

[Numpy] 기본 수 연산, 불리안 연산 , 기본 통계, numpy array 와 python list 비교

Tashapark 2024. 5. 20. 16:36
728x90

#코드잇 데이터 사이언스 강의 듣는 중

 

넘파이는 진짜 너무 편리해서

파이썬은 for문으로 연산하려는 값을 하나씩 확인해줘야 하는 데 그냥 더 해주면 됨. 

#python...
for i in range(len(array1)):
	array1[i] = array1[i] * 2

#이걸 그냥 넘파이는 변수에다가 냅다 곱해주면 되고, 값을 저장하고 싶으면
#변수 명을 주면 됨. 
#array1 = array1 * 2
array1 * 2

 

 

- 불린 인덱싱 / 마스킹

- 특정 조건에 따라 가리는 것을 의미함. 

- 불리안도 그냥 np.array에 확인하고 싶은 수식 여부만 작성하면 됨. 

array1 = np.array([2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31])
array1 > 4

#해당 값은 전부 True로 뜸 
#array([False, False,  True,  True,  True,  True,  True,  True,  True,
        True,  True])

#마찬가지임
array1 %2 == 0
#array([ True, False, False, False, False, False, False, False, False,
       False, False])

 

- 변수에 불리안 값을 넣어서 인덱싱을 활용할 수도 있음 

booleans = np.array((True, True, False ,True, True, False, True, True, True, False, True))

#where로 True 값 인덱스만 확인 가능 
np.where(booleans)
#(array([ 0,  1,  3,  4,  6,  7,  8, 10]),)

#위 코드에서 
array1 > 4
#array([False, False,  True,  True,  True,  True,  True,  True,  True, True,  True])

np.where(array1 > 4)
#(array([ 2,  3,  4,  5,  6,  7,  8,  9, 10]),)

filter = np.where(array1 > 4)
filter
#(array([ 2,  3,  4,  5,  6,  7,  8,  9, 10]),)

#변수를 인덱스에 넣는 것도 가능
array1[filter]
#array([ 5,  7, 11, 13, 17, 19, 23, 29, 31])

 

- 기본 통계 값 구하기 

array1 = np.array([14, 6, 13, 21, 23, 31, 9, 5])

 

array1.max() --> 최댓값

array1.min() --> 최솟값

array1.mean() --> 평균값

array1.sum() --> 총 합

 

#numpy.array 메소드 아니고 numpy 메소드임 

np.median(array1) --> 중앙값

 

array1.std() --> 표준편차

array1.var() --> 분산 

 

 

- numpy array 와 python list 비교

numpy array python list
- 두 배열을 더하면 배열 값이 더해짐 a + b = c
- 뺄셈, 곱셈, 나눗셈 다 가능 
- 특정 한 값 사친연산하면 배열 각 값에 연산이 됨 
- 곱하면 곱해짐 [1, 2] *2 =[2, 4]

- 간단한 문법과 뛰어난 성능 (빠름)
-> 한 배열에는 하나의 유형만 넣을 수 있음. 

- 수치 계산이 많고 복잡하거나 행렬 같이 다차원 배열일 경우 
- 두 리스트를 더하면 리스트가 뒤에 붙어서 하나로 길어짐 a + b = ab
- 뺄셈, 곱셈, 나눗셈 다 오류
- 특정 한 값 더하기, 빼기, 나눗셈 오류
- 곱셈은 *하면 기존 값이 여러 번 써짐. [1, 2] *2 =[1, 2, 1, 2]

- > 느리지만, 한 리스트에 여러 유형의 값을 넣을 수 있음.

- 값을 추가하고 제거하는 일에 사용
728x90
반응형

'Data Science > Numpy' 카테고리의 다른 글

[Numpy] 인덱싱, 슬라이싱  (0) 2024.05.19
[Numpy] 배열  (0) 2024.05.19