본문 바로가기
Python

[Python] 파이썬 numpy 배열 사용하기(2)/numpy.where

by 고체물리학 2021. 10. 19.

2021.10.17 - [Python] - [Python] 파이썬 numpy 배열 사용하기(1)

이전 포스팅에 이어서 numpy 배열 사용하는 방법을 정리한다

1. 불린 배열 생성

boolean자료형도 배열로 생성할 수 있다

import numpy as np array1 = np.array([True,True,False,True]) print(array1)

2. np.where 사용

- 불린 값이 있는 배열에서 True값이 있는 배열 index를 반환한다
np.where(배열)

import numpy as np array1 = np.array([True,True,False,True]) print(array1) print(np.where(array1))


- 조건식을 사용하여 배열에 원하는 조건의 값이 있는지 확인할 수 있다
ex) 배열의 요소에서 5이상인 요소의 인덱스 출력

import numpy as np array1 = np.array([1,2,3,4,5,6,7,8,9,10]) print(array1) print(np.where(array1 > 5))


ex) 배열 요소에서 요소가 홀수인지 짝수인지 확인하는 코드

import numpy as np array1 = np.array([1,2,3,4,5,6,7,8,9,10]) print(array1) print(np.where(array1%2 == 0 ,'짝수','홀수'))

조건식의 결과가 True면 짝수 False 홀수


3. numpy vs python list

여러 값을 보관하는것에 공통점이 있으나 문법으로는 차이가 있다

import numpy as np array1 = np.array([1,2,3,4,5,6,7,8,9,10]) array2 = [1,2,3,4,5,6,7,8,9,10] print("numpy 덧셈", array1+array1) print("list 덧셈 ", array2+array2) print("numpy 뺄셈", array1-array1) # print("list 뺄셈 ", array2-array2) #에러 print("numpy 곱셈", array1*array1) # print("list 곱셈 ", array2*array2) #에러 print("numpy 나눗셈", array1/array1) # print("list 나눗셈 ", array2/array2) #에러 print("numpy +10", array1+10) # print("list +10 ", array2+10) print("numpy *2", array1*2) print("list *2 ", array2*2)

- numpy 리스트의 덧셈, 뺄셈, 곱셈, 나눗셈은 리스트의 요소끼리 연산이 가능하지만,
python 리스트의 뺄셈, 곱셈, 나눗셈은 에러가 나고 덧셈은 리스트를 이어주는 역할을 한다

- numpy의 리스트의 *2는 리스트 요소에서 *2를 하지만 python 리스트는 같은 값을 2번 출력한다(*3은 3번 출력)

- numpy 리스트는 같은 자료형만 넣을 수 있지만 python 리스트는 다양한 자료형을 넣을 수 있기 때문에 수치계산만 하기에는 numpy가 더 성능이 우수하다

4. numpy 최대값, 최소값, 평균값, 중앙값, 표준편차, 분산, 표준 편차 사용

- 순서대로 array.max(), array.min(), array.mean(), numpy.median(array), array.var(), array.std

import numpy as np array1 = np.array([1,2,3,4,5,6,7,8,9,10]) print(array1.max()) # 최댓값 print(array1.min()) # 최솟값 print(array1.mean()) # 평균값 print(np.median(array1)) # 중앙값 중앙값은 짝수라서 5,6 두개를 가지고 두 값을 평균내면 5.5 print(array1.var()) # 분산: 평균 값의 각 편차를 구해서 제곱한뒤 편차의 평균을 구한 값 -4.5 -3,5 -2.5 -1.5 -0.5 0.5 1.5 2.5 3.5 4.5 print(array1.std()) # 표준 편차: 루트분산







반응형

댓글