Numpy 배열의 데이터 비교 방법(any, all, where, isnan, argmax, argmin)
np.any(조건) - 배열의 데이터 중 조건과 맞는 데이터가 있으면 True 전혀 없으면 False arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) np.any(arr > 5) True np.any(arr 5) False np.all(arr < 10) True 배열의 같은 위치에 있는 요소간의 비교 배열의 shape이 같아야 함 비교연산자 ==, 로 배열 요소 비교 arr1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) arr2 = np.array([[1, 2, 3], [1, 5, 7], [..
2019. 8. 8.
Numpy 사칙연산, Transform, 브로드캐스팅
넘파이는 사칙연산 +, -, *, / 를 사용하여 두 배열의 요소들간의 사칙연산을 할 수 있음 arr1 = np.array([[1, 2, 3], [4, 5, 6]]) arr2 = np.array([[2, 3, 4], [5, 6, 7]]) arr1 + arr2 array([[ 3, 5, 7], [ 9, 11, 13]]) arr2 - arr1 array([[1, 1, 1], [1, 1, 1]]) arr1 * arr2 array([[ 2, 6, 12], [20, 30, 42]]) arr2 / arr1 array([[2. , 1.5 , 1.33333333], [1.25 , 1.2 , 1.16666667]]) 같은 위치의 요소와 연산하므로 두 배열의 shape는 같아야 연산할 수 있고 shape가 다르면 valu..
2019. 8. 8.
Numpy 연산(sum, mean, std, exp, vstack, hstack)과 axis의 의미
sum() - 배열의 모든 요소들의 합을 구함 arr = np.array([1,2,3,4,5]) arr.sum(dtype=np.float) 15 sum(axis=0) - axis 어떤 축을 기준으로 연산할 것인가 지정. (3, 4)의 shape인 행렬을 axis=0으로 지정하면 row를 기준으로 연산 axis=1으로 지정하면 column을 기준으로 연산 shape의 가장 앞부터 0 다음 예는 (3,2,4) 행렬의 sum 연산이다. arr = np.array([ [[1, 2, 3, 4], [5, 6, 7, 8]], [[1, 2, 3, 4], [5, 6, 7, 8]], [[1, 2, 3, 4], [5, 6, 7, 8]]]) arr.shape (3, 2, 4) print(arr.sum(axis=0)) [[ 3..
2019. 8. 7.
Numpy 배열 생성 방법(arange, zeros, ones, random)
arange() - 파이썬의 range와 같음 np.arange(숫자) np.arange(최저값, 최고값, 스텝) 리스트와 다르게 소수를 step으로 할 수 있음 np.arange(0, 5, 0.5) np.arange(20).reshape(4,5) zeros() - 모든 요소가 0인 배열 np.zeros(shape=(10,), dtype=np.int8) np.zeros((3,4)) ones() - 모든 요소가 1인 배열 np.ones(shape=(10,), dtype=np.int8) np.ones((3,4)) empty() - 모든 요소가 비어있는 배열 생성 어떤 값으로 초기화 하지 않고 메모리만 잡아주기 때문에 현재 메모리에 있는 값 그대로 사용 np.empty(shape=(10, ), dtype=np..
2019. 8. 7.
Numpy 요소선택 인덱싱, 슬라이싱 (indexing, slicing)
넘파이 인덱싱 인덱싱은 배열의 요소에 접근하는 방법이다. 첫번째 행의 두번째 열의 값이라면 arr = np.array([[1, 2, 3, 4],[5, 6, 7, 8]]) arr[0][1] 2 2가 선택된다. 아래와 같이 ,콤마로 구분해서 선택할 수 도 있다. arr[0,1] 2차원 배열이기 때문에 하나의 숫자만 입력하면 행 전체가 선택된다. arr[0] array([1, 2, 3, 4]) 배열의 범위를 벗어나게 되면 Index 오류가 뜬다. arr[5][1] IndexError: index 5 is out of bounds for axis 0 with size 2 고차원의 배열도 가장 바깥쪽의 대괄호부터 선택하면 된다. arr = np.array([[[1, 2, 3, 4], [5, 6, 7, 8]], [..
2019. 8. 7.
Numpy shape 변환 (reshape, flatten)
Numpy 배열의 shape 변환 (reshape(), flatten()) arr.reshape() reshape 할 때는 총 개수가 맞아야 한다. 즉 size가 같아야 shape을 변환할 수 있음 아니면 ValueError: cannot reshape array of size x into shape (x, x) 에러가 발생한다. (2, 4) 배열 생성 arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) array([[1, 2, 3, 4], [5, 6, 7, 8]]) 8행으로 shape 변환 arr.reshape(8,) array([1, 2, 3, 4, 5, 6, 7, 8]) 4행 2열의 shape 변환 arr.reshape(4,2) array([[1, 2], [3, 4], ..
2019. 8. 7.
numpy 배열 타입(dtype), 모양(shape), 차원(ndim), 크기(size)
ndarray 생성 - np.array(배열, 타입) arr = np.array([1, 2, 3, 4], float) 데이터 타입 지정시 배열에는 지정한 타입의 데이터만 넣을 수 있음 arr = np.array([1, 2, "a", 3], float) ValueError: could not convert string to float: 'a' arr = np.array([1, 2, "a", True]) 위와 같이 생성시 모든 데이터가 문자열로 인식되고 이는 arr = np.array([1, 2, "a", True], np.str) 과 같음. 각 요소의 데이터 타입을 확인해보면 모두 문자열임. print(type(arr[0]), type(arr[1]), type(arr[2]), type(arr[3])) 형변..
2019. 8. 6.