Python 데이터 분석

Python 데이터분석 기초 5 - 배열에서 조건 연산 where(조건, 참, 거짓) 3항 연산자, 배열 결합, 복원/비복원

코딩탕탕 2022. 10. 28. 17:32

 

# 배열에서 조건 연산   where(조건, 참, 거짓) ... 3항 연산자

import numpy as np
from dask.array import lib

x = np.array([1,2,3])
y = np.array([4,5,6])

condionData = np.array([True, False, True])
result = np.where(condionData, x, y) # 참일 때는 x 거짓일때는 y값 나오도록 조건 설정
print(result)

print()
aa = np.where(x >= 2)
print(aa)
print(x[aa])
print(np.where(x >= 2, 'T', 'F'))
print(np.where(x >= 2, x + 10, x * 5))

print('배열 결합')
kbs = np.concatenate([x, y])
print(kbs)

x1, x2 = np.split(kbs, 2) # x1, x2로 분할한다는 의미
print(x1)
print(x2)

print()
a = np.arange(1, 17).reshape(4, 4)
print(a)

x1, x2 = np.hsplit(a, 2)   # 좌우로 분리함
print(x1)
print(x2)

x1, x2 = np.vsplit(a, 2)   # 상하로 분리함
print(x1)
print(x2)

print('---sampling : 복원/비복원---')
li = np.array([1,2,3,4,5,6,7])

# 복원 추출
for _ in range(5):
    print(li[np.random.randint(0, len(li) - 1)], end= ' ')
    
print()
import random
# 비복원 추출
print(random.sample(list(li), k = 5))
print(random.sample(range(1, 46), k = 6))

print()
# choice()
print(list(np.random.choice(range(1, 46), 6)))  # 복원 추출(같은 숫자 나옴)
print(list(np.random.choice(range(1, 46), 6, replace = True)))  # 같은 복원 추출 방법
print(list(np.random.choice(range(1, 46), 6, replace = False))) # 비복원 추출(같은 숫자 안 나옴)

print()
datas = 'air book cat d e f god'
ar = datas.split(sep = ' ')
print(ar)
print(np.random.choice(ar, 3, p = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.4])) # 복원

<console>
[1 5 3]

(array([1, 2], dtype=int64),)
[2 3]
['F' 'T' 'T']
[ 5 12 13]
배열 결합
[1 2 3 4 5 6]
[1 2 3]
[4 5 6]

[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]
[[ 1  2]
 [ 5  6]
 [ 9 10]
 [13 14]]
[[ 3  4]
 [ 7  8]
 [11 12]
 [15 16]]
[[1 2 3 4]
 [5 6 7 8]]
[[ 9 10 11 12]
 [13 14 15 16]]
---sampling : 복원/비복원---
4 1 2 4 6 
[7, 1, 5, 2, 4]
[1, 3, 22, 16, 31, 23]

[1, 44, 37, 37, 19, 1]
[37, 30, 41, 33, 4, 16]
[36, 26, 44, 11, 31, 13]

['air', 'book', 'cat', 'd', 'e', 'f', 'god']
['cat' 'god' 'god']