Python과 머신러닝/NumPy 데이터 분석(16)
-
[Python.NumPy] 텍스트 데이터를 읽기 저장하기 - np.loadtxt/np.savetxt/np.load/np.save
1. np.loadtxt와 np.savetxt 예시 (텍스트 데이터 읽기 / 저장하기) In [1]:import numpy as np In [2]:a = np.loadtxt("./populations.txt", delimiter='\t') a Out[2]:array([[123., 234.], [345., 456.], [567., 678.]]) In [3]:a_int = a.astype(int) a_int Out[3]:array([[123, 234], [345, 456], [567, 678]]) In [4]:np.savetxt('int_data.csv', a_int, fmt='%.2e', delimiter=',') np.loadtxt : 123~678이라는 값을 가진 populations.txt에서 tab..
2020.12.14 -
[Python.NumPy] Boolean Index와 Fancy Index
1. Boolean Index In [1]:import numpy as np In [2]:test_a = np.array([1,4,0,2,3,8,9,7], float) test_a Out[2]:array([1., 4., 0., 2., 3., 8., 9., 7.]) In [3]:test_a > 3 # test_a 중에서 각 요소별로 3보다 큰지 작은지에 대한 boolean 값이 담김 Out[3]:array([False, True, False, False, False, True, True, True]) In [4]:test_a[test_a > 3] Out[4]:array([4., 8., 9., 7.]) test_a > 3이라고 하면 각 요소가 3보다 큰지에 대한 Boolean 값을 반환한다고 이미 정리한 바..
2020.12.13 -
[Python.NumPy] Array sort/min/max 함수 (argsort, np.argmax, np.argmin)
0. 요약 배열의 값들을 오름차순/내림차순으로 정렬하는 방법을 알아보자. 그리고 배열의 최대 최소 값을 어떻게 추출할지, 또 row/col 별 최대 최소값은 어떻게 추출할 수 있는지 알아보자. 1. argsort In [1]:import numpy as np In [2]:a = np.array([4,2,1,7]) a Out[2]:array([4, 2, 1, 7]) In [3]:sort_index = a.argsort() # 오름차순 기준 index 순서를 반환 sort_index Out[3]:array([2, 1, 0, 3], dtype=int64) In [4]:a[sort_index] #fancy indexing으로 순서대로 추출 Out[4]:array([1, 2, 4, 7]) In [5]:sort_i..
2020.12.12 -
[Python.NumPy] Array 비교 연산자와 논리 연산자
0. 요약 일반 scalar 값의 대소 비교를 하듯 Array에도 대소 비교가 필요하다. NumPy에는 대소비교 뿐만 아니라, 논리 연산 (AND/OR)을 지원하는 함수들을 제공한다. np.logical_and, np.logical_or, np.where, np.all, np.any, np.isnan, np.isfinite과 같이 다양한 함수들의 용법과, 각 함수가 반환하는 데이터에 대해서 이해해보자. 1. Array와 Array의 비교 In [1]:import numpy as np In [2]:test_a = np.array([1,3,0], float) test_a Out[2]:array([1., 3., 0.]) In [3]:test_b = np.array([5,2,1], float) test_b Ou..
2020.12.11 -
[Python.NumPy] Array 간의 연산과 Broadcasting
0. 요약 Array 간의 연산을 수행할 때, 두 Array의 크기가 같은 경우에는 어떻게 연산이 될까? 그렇다면 크기가 다를 경우에는 어떻게 될까? Array에 Scalar값이나 vector를 더하려고 해도 정상적으로 수행될까? 그렇다면 어떤 결과가 나올까? 이를 이해하기 위해서는 Broadcasting이라는 개념을 이해해야 하는데, 자세히 하나씩 정리해보자. 1. Array와 Array 간의 연산 In [1]:import numpy as np In [2]:test_a = np.array([[1,2,3], [4,5,6]], float) test_a Out[2]:array([[1., 2., 3.], [4., 5., 6.]]) In [3]:test_a + test_a Out[3]:array([[ 2., 4..
2020.12.10 -
[Python.NumPy] array 붙이기 hstack, vstack, concatenate - Operation Function II
0. 요약 여러 소스로부터 데이터를 받고 나면 이를 합치는 동작이 필요하다. 데이터를 입력받아 배열로 만들었다는 가정 하에, hstack/vstack과 concatenate 함수를 통해서 배열을 연결하는 동작을 배워보자. 1. hstack과 vstack In [1]:a = np.arange(1,4) a Out[1]:array([1, 2, 3]) In [2]:b = np.arange(4,7) b Out[2]:array([4, 5, 6]) In [3]:np.hstack((a,b)) Out[3]:array([1, 2, 3, 4, 5, 6]) In [4]:np.vstack((a,b)) Out[4]:array([[1, 2, 3], [4, 5, 6]]) hstack은 horizontal stack의 약자로 두 개의..
2020.12.09