import numpy as np
a = np.arange(12)
array[0,1,2,3,4,5,6,7,8,9,10,11]
a.reshape(3,4) // array[[0,1,2,3],[4,5,6,7],[8,9,10.11]]
a.reshape(6,-1) // array[[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]]
인덱싱
자료 구조 내에서 1개의 항목에 접근하는 것
슬라이싱
연속적인 객체들의(예: 리스트, 튜플, 문자열) 범위를 지정해 선택해서 객체들을 가져오는 방법 및 표기법을 의미
ages = np.array([18,19,25,30,28])
print(ages[1:3]) //인덱스 1에서 2까지
>>array([19,25])
print(ages[:2]) //인덱스 0에서 1까지
>>array([18,19])
#논리적인 인덱싱
y = ages > 20
print(y)
>>array([False,False,True,True,True])
print(ages[ages>20])
>>array([25,30,28])
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a[0,2])
>> 3
a[0,0] = 12
print(a)
>> array([[12,2,3],[4,5,6],[7,8,9]])
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a[0:2,1:3])
>> array([[2,3],[5,6]])
슬라이싱을 사용하면 얕은복사로 인식하여 같은 메모리를 공유해서 b의 값을 변경하면 a도 똑같이 값을 변경하게된다.
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
b = a[0,:]
print(b)
>>array([1,2,3,4])
b[0] = 77
print(b)
>>array([77,2,3,4])
print(a)
>>array([[77,2,3,4],[5,6,7,8],[9,10,11,12]])
copy()함수를 이용하며 b2가 값을 바꿔도 a의 값은 변하지 않는다.
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
b2 = a.copy()
b2[0][0] = 55
print(a[0][0])
>>1