# 배열에서 조건 연산 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']