드레:
코딩 뿌시기
드레:
전체 방문자
오늘
어제
  • 분류 전체보기 (268)
    • Python (74)
      • Python 기초 (42)
      • Numpy (8)
      • Pandas (22)
    • Machine Learning (31)
      • Machine Learning (1)
      • Deep Learning (27)
    • AWS (22)
      • RDS (3)
      • EC2 (9)
      • Lambda (8)
      • S3 (2)
    • MySQL (24)
    • Git (8)
    • Streamlit (12)
    • REST API (22)
    • Java (24)
    • Android (36)
    • Debugging (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 서버리스
  • Retrofit2
  • Callback
  • AWS Lambda
  • flask
  • 안드로이드 스튜디오
  • 딥러닝
  • Java
  • fine tuning
  • Python
  • Streamlit
  • pandas
  • EC2
  • 깃이그노어
  • rest api
  • 액션바
  • tensorflow
  • GET
  • JWT
  • volley
  • Lambda
  • github
  • aws s3
  • AWS
  • 네이버 API
  • CNN
  • serverless
  • Ann
  • API
  • Transfer Learning

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
드레:

코딩 뿌시기

Numpy Boolean 조건문으로 배열 인덱싱(Boolean Indexing)
Python/Numpy

Numpy Boolean 조건문으로 배열 인덱싱(Boolean Indexing)

2022. 11. 24. 12:06
블로그_넘파이 bool연산
In [1]:
from IPython.display import display, HTML
display(HTML("<style>.container { width:90% !important; }</style>"))
# 코드 셀의 너비를 조정하는 코드입니다. 신경쓰지 마세요

넘파이의 Boolean indexing¶

In [3]:
import numpy as np
In [4]:
X = np.array([[13, 22, 49, 42, 80],
       [91, 63, 58, 20, 34],
       [60, 40, 16, 37, 66],
       [ 2, 44, 16, 87, 84]])
In [9]:
# 80보다 큰 데이터는 몇개인가?
In [6]:
X > 80
Out[6]:
array([[False, False, False, False, False],
       [ True, False, False, False, False],
       [False, False, False, False, False],
       [False, False, False,  True,  True]])
In [7]:
np.sum(X > 80)
Out[7]:
3
In [8]:
(X > 80).sum()
Out[8]:
3
In [11]:
# 80보다 큰 데이터를 가져오세요
X[X > 80]
Out[11]:
array([91, 87, 84])
In [12]:
# 50보다 크고 80보다 작은 데이터를 가져오세요
(X > 50) and (X < 80)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In [12], line 2
      1 # 50보다 크고 80보다 작은 데이터를 가져오세요
----> 2 (X > 50) and (X < 80)

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

and, or 연산자는 조건문에서만 사용하는 것!!!¶

In [ ]:
# 데이터를 가져오는 데이터 억세스에서는 
# and, or를 사용하지 않고,
# &, | 를 사용한다.
In [13]:
(X > 50) & (X < 80)
Out[13]:
array([[False, False, False, False, False],
       [False,  True,  True, False, False],
       [ True, False, False, False,  True],
       [False, False, False, False, False]])
In [14]:
X[ (X > 50) & (X < 80) ]
Out[14]:
array([63, 58, 60, 66])
In [15]:
# X의 데이터 중에서 30보다 작거나 90보다 큰 데이터만 가져오시오
X[ (X < 30) | (X > 90)]
Out[15]:
array([13, 22, 91, 20, 16,  2, 16])
In [ ]:
 
In [ ]:
# 1부터 25까지 순차적으로 들어있는 배열 X를 만들고
# boolean indexing을 이용해서 그 중 홀수만으로 이루어진 배열 Y를 만드시오
In [16]:
X = np.arange(1, 25+1).reshape(5, 5)
In [17]:
X
Out[17]:
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [11, 12, 13, 14, 15],
       [16, 17, 18, 19, 20],
       [21, 22, 23, 24, 25]])
In [18]:
X % 2 == 1
Out[18]:
array([[ True, False,  True, False,  True],
       [False,  True, False,  True, False],
       [ True, False,  True, False,  True],
       [False,  True, False,  True, False],
       [ True, False,  True, False,  True]])
In [19]:
Y = X[X % 2 == 1]
In [20]:
Y
Out[20]:
array([ 1,  3,  5,  7,  9, 11, 13, 15, 17, 19, 21, 23, 25])

'Python > Numpy' 카테고리의 다른 글

Numpy의 연산 - 브로드캐스팅(Broadcasting)  (0) 2022.11.24
Numpy ndarray의 데이터 accessing, slicing  (0) 2022.11.24
Numpy의 축(axis) 연산  (0) 2022.11.23
Numpy의 난수 배열 생성 random, randint  (0) 2022.11.23
Numpy의 배열 생성 arange, linspace, reshape  (0) 2022.11.23
    'Python/Numpy' 카테고리의 다른 글
    • Numpy의 연산 - 브로드캐스팅(Broadcasting)
    • Numpy ndarray의 데이터 accessing, slicing
    • Numpy의 축(axis) 연산
    • Numpy의 난수 배열 생성 random, randint
    드레:
    드레:

    티스토리툴바