반응형
목차
파이썬 Numpy where 함수란?
파이썬 numpy.where() 함수는 조건에 맞는 입력 어레이(array) 값의 인덱스(index) 값을 알려줍니다.
Syntax는 아래와 같습니다.
numpy.where(condition[, x, y])
조건문이 만족(True)할 경우 x값을 False 일 경우 y를 출력 해줍니다. 조건만 있을 경우 조건의 입력 값에 index를 출력 해줍니다.
파이썬 Numpy where 예제 실습#1
예제 코드>>
import numpy as np
a_var = np.array([[1, 2, 3], [4, 5, 6]])
print("raw_data")
print(a_var)
print ("5와 같거나 작은 index 값")
indices = np.where(a_var<=5)
print(indices)
print("Index values")
print(a_var[indices])
3번째 라인: 2x3 매트릭스를 만들어 줍니다.
5~6번 라인: 입력값을 출력 해줍니다.
8~10번 라인: where 함수를 사용해서 입력 값 중에 5와 같거나 작은 값의 index를 출력 합니다.
12~13번 라인: 인덱스 값을 넣어서 해당 값들을 불러 옵니다.
결과>>
raw_data
[[1 2 3]
[4 5 6]]
5보다 큰 index 값
(array([0, 0, 0, 1, 1], dtype=int64), array([0, 1, 2, 0, 1], dtype=int64))
Index values
[1 2 3 4 5]
파이썬 Numpy where 예제 실습#2
다음은 판다스 데이터 프레임(Dataframe)에 값을 일부만 원하는 값으로 넣고 나머지는 랜덤으로 채울 때 사용하는 방법 입니다.
예제 코드>>
import numpy as np
import pandas as pd
data_df = pd.DataFrame({
"James":np.where(np.random.uniform(0,1,10)<0.3, np.nan, np.random.randint(0,20,10) ),
"Jone":np.where(np.random.uniform(0,1,10)<0.3, np.nan, np.random.randint(0,20,10) ),
"Michael":np.random.randint(0,20,10),
})
print(data_df)
5번 라인: np.where 을 사용해서 np.random.uniform 으로 0~1사이 수를 10개 만들고 이중에 값이 0.3 이하인 경우에는 np.nan 값을 넣고 나머지는 0~20 사이 정수로 랜덤하게 채워 줍니다.
결과>>
James Jone Michael
0 19.0 17.0 18
1 NaN 13.0 17
2 14.0 NaN 9
3 8.0 6.0 17
4 10.0 12.0 3
5 18.0 10.0 17
6 17.0 NaN 17
7 NaN 18.0 1
8 NaN NaN 18
9 9.0 17.0 19
반응형
'파이썬(Python) > numpy' 카테고리의 다른 글
[Python] 로그 그래프 그리기, numpy log1p, log, log10 함수 비교 (0) | 2023.02.13 |
---|---|
[Python] Numpy 배열 값 채우기(1차, 2차, 3차 ....) (0) | 2022.04.19 |
[Python] Numpy axe 값이란? 행/열에 따라 합치기 (0) | 2022.03.14 |
[Python] Numpy 행렬 array에 열(Column), 행(Row) 추가하기 (0) | 2022.03.10 |
[Python] Numpy 행렬(Matrix) 함수(Shape, Reshape) (0) | 2022.03.08 |