본문 바로가기
Python 파이썬/numpy

numpy ) 배열 array 인덱싱, 슬라이싱, 반복

by 하이방가루 2022. 3. 19.
728x90
반응형

인덱싱(indexing), 슬라이싱(slicing)

a = np.arange(10)**2
print(a) # [ 0  1  4  9 16 25 36 49 64 81]
print(a[3:5]) # 3번부터 5번 전까지 선택
#[ 9 16]
print(a[2]) # 4
print(a[::-1]) # 전체요소를 역순으로 1개씩 건너뛰면 선택
#[81 64 49 36 25 16  9  4  1  0]
print(a[0:6:2]) # 0번부터 6번 전까지 요소를 2개씩 건너뛰며 선택
#[ 0  4 16]
a[0:6:2] = -a[0:6:2]
# 0번부터 6번 전까지 요소를 2개씩 건너뛰며 선택한 값에
# 0번부터 6번 전까지 요소를 2개씩 건너뛰며 부호를 바꿔서 할당
print(a) # [  0   1  -4   9 -16  25  36  49  64  81]

a = np.arange(1,21,1).reshape(4,5)
print(a)
#[[ 1  2  3  4  5]
# [ 6  7  8  9 10]
# [11 12 13 14 15]
# [16 17 18 19 20]]
print(a[2,1]) # 2번행 1번열 선택
# 12
print(a[:2,]) # 처음부터 2번 전 행, 모든 열
#[[ 1  2  3  4  5]
# [ 6  7  8  9 10]]
print(a[1,]) # 1번 행 , 모든 열
#[ 6  7  8  9 10]
print(a[:,3:]) # 모든 행, 3번부터 끝까지 열
#[[ 4  5]
# [ 9 10]
# [14 15]
# [19 20]]

print(a[:,-1]) # 모든 행, 마지막 열
#[ 5 10 15 20]
print(a[:,-1].shape) # (4,)

조건식 슬라이싱

# 조건식 슬라이싱
x = np.arange(1,21)
print(x)
# [ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20]
print(x[x%3==0])
# [ 3  6  9 12 15 18]
print(x[x%4==1])
# [ 1  5  9 13 17]
print(x[(x%3==0) & (x%4==1)])
# [9]

반복(iterating)

a = np.arange(10)**2
print(a)
#[ 0  1  4  9 16 25 36 49 64 81]
for x in a:
    print(x+1, end=' ')
# 1 2 -3 10 -15 26 37 50 65 82

x2 = np.array([[1.0,2.0],[3.0,4.0]])
for x in x2:
    print(x+1)
#[2. 3.]
#[4. 5.]
728x90
반응형

'Python 파이썬 > numpy' 카테고리의 다른 글

numpy ) 난수 random  (0) 2022.03.19
numpy ) 함수  (0) 2022.03.19
numpy ) 배열 array 형 변환  (0) 2022.03.19
numpy ) 배열 array 연산  (0) 2022.03.19
numpy ) 배열 array 생성  (0) 2022.03.18

댓글