인덱싱
python
# 1차원
a1 = np.array([i for i in range(0, 60, 10)])
a1[0]
>>> 0
a1[4]
>>> 40
a1[[1,3,4]]
>>> array([10, 30, 40])
# 2차원
a2 = np.arange(10, 100, 10).reshape(3, 3)
a2[0,2] # 특정 행, 열 위치의 원소값
>> 30
a2[2,2] = 95 # 특정 행, 열 위치의 원소값 변경
a2
>> array([[10, 20, 30],
[40, 50, 60],
[70, 80, 95]])
a2[1] # 특정 행 전체를 불러들이기
>> array([40, 50, 60])
# example
# case1
arr4 = np.arange(1, 11).reshape(2, 5)
arr4
>>> array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]])
arr4.dtype
>>> dtype('int32')
arr4[1,2]
>>> 8
arr4[0,:]
>>> array([1, 2, 3, 4, 5])
arr4[:,0]
>>> array([1, 6])
print(arr4.sum(axis=0))
>>> [ 7 9 11 13 15]
print(arr4.sum(axis=1))
>>> [15 40]
print(arr4[arr4 > 3])
>>> [ 4 5 6 7 8 9 10]
print(arr4[ (arr4 % 2) == 0] )
>>> [ 2 4 6 8 10]
print(arr4[ (arr4 % 2) == 1] )
>>> [1 3 5 7 9]
슬라이싱
python
# 슬라이싱
# 1차원
b1 = np.array([i for i in range(0, 60, 10)])
print(b1)
>>> [ 0 10 20 30 40 50]
b1[1:4]
>>> array([10, 20, 30])
b1[-5:-2]
>>> array([10, 20, 30])
b1[:3] # 시작위치 지정 x
>>> array([ 0, 10, 20])
b1[2:] # 끝 위치 지정 x
>>> array([20, 30, 40, 50])
b1[2:5] = np.array([25, 35, 45])
print(b1)
>>> [ 0 10 25 35 45 50]
b1[3:6] = 60
print(b1)
>>> [ 0 10 25 60 60 60]
# 2차원
b2 = np.arange(10, 100, 10).reshape(3, 3)
print(b2)
>>> [[10 20 30]
[40 50 60]
[70 80 90]]
b2[1]
>>> array([40, 50, 60])
b2[0:2]
>>> array([[10, 20, 30],
[40, 50, 60]])
b2[1][0:2]
>>> array([40, 50])
b2[1:3, 1:3]
>>> array([[50, 60],
[80, 90]])
b2[:3, 1:]
>>> array([[20, 30],
[50, 60],
[80, 90]])
b2[0:2, 1:3]
>>> array([[20, 30],
[50, 60]])
b2[0:2, 1:3] = np.array([[25, 35], [55, 65]])
b2
>>> array([[10, 25, 35],
[40, 55, 65],
[70, 80, 90]])