-
[데이터분석실전]NumPyIT&컴퓨터공학/데이터분석개론 2021. 2. 16. 16:44
NumPy Overview¶
In [3]:import numpy as np # numpy 를 import 하고, np 라는 이름으로 사용하자
ndarray : N 개의 dimensions array 라고생각하자. 들어가있는 데이터타입은 모두 동일해야한다.¶
In [6]:original_data = np.random.randn(2,3) # 2 by 3 형태의 매트릭스를 만드는데, 이때 standard normal distriution N(0,1) 사이의 값을 선택한다.
In [7]:print(original_data)
[[-1.04237377 0.48626224 0.61142801] [-0.24311897 0.87454671 -0.5134187 ]]
ndarray 에서 할 수 있는 수학적인 계산¶
In [13]:print("곱셈도 할수 있어요 ! : \n\n {}".format(original_data*10))
곱셈도 할수 있어요 ! : [[-10.42373774 4.86262241 6.11428011] [ -2.43118972 8.74546712 -5.13418703]]
In [14]:print("뺄셈도 할수 있어요 ! : \n\n {}".format(original_data-original_data))
뺄셈도 할수 있어요 ! : [[0. 0. 0.] [0. 0. 0.]]
In [15]:print("덧셈도 할수 있어요 ! : \n\n {}".format(original_data+original_data))
덧셈도 할수 있어요 ! : [[-2.08474755 0.97252448 1.22285602] [-0.48623794 1.74909342 -1.02683741]]
In [17]:print("shape 은 ndarray 의 N by M size를 나타냅니다 ! \n\n{}".format(original_data.shape))
shape 은 ndarray 의 N by M size를 나타냅니다 ! (2, 3)
In [18]:print("dtype 은 ndarray안에있는 데이터 타입을 나타냅니다 ! \n\n{}".format(original_data.dtype))
dtype 은 ndarray안에있는 데이터 타입을 나타냅니다 ! float64
In [42]:print("평균값도 구할 수 있어요 ! \n\n{}".format(np.mean(original_data)))
평균값도 구할 수 있어요 ! 0.02888758579547594
In [43]:print("표준편차도 구할 수 있어요 ! \n\n{}".format(np.std(original_data)))
표준편차도 구할 수 있어요 ! 0.6806086565450783
같은 길이의 배열 여러개로 array를 만들면 자동으로 n 차원으로 구성해준다.¶
In [22]:arr1 = np.array([[1,2,3,4,5],[6,7,8,9,10]]) print(arr1)
[[ 1 2 3 4 5] [ 6 7 8 9 10]]
만약 같은 길이의 배열이 아니라면 오류가 발생한다.¶
In [23]:arr2 = np.array([[1,2,3,4,5],[6,7,8]]) print(arr2)
[list([1, 2, 3, 4, 5]) list([6, 7, 8])]
<ipython-input-23-49fb21b69455>:1: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray arr2 = np.array([[1,2,3,4,5],[6,7,8]])
Universal Function : 일반적으로 사용되는 범용 함수¶
In [26]:arr3 = np.random.randn(5,1) print(arr3) # 5 by 1 의 표준정규분포를 따르는 ndarray를 만든다.
[[ 0.64830993] [-1.9023546 ] [ 0.51296355] [-0.7708257 ] [ 1.08615076]]
In [27]:print("절댓값을 취할 수 있어요! \n{}".format(np.abs(arr3)))
절댓값을 취할 수 있어요! [[0.64830993] [1.9023546 ] [0.51296355] [0.7708257 ] [1.08615076]]
Data processing¶
In [34]:arr_x = np.array([1,2,3,4,5]) arr_y = np.array([-1,-2,-3,-4,-5]) arr_cond = np.array([True,False,False,True,True])
In [40]:arr_result1 = [(x if c else y) for x, y, c in zip(arr_x, arr_y, arr_cond)] print("Foor Loop 를 사용하는 경우 :\n") print(arr_result1) # 만약 cond 가 True 면 x 를 , False 면 y를
Foor Loop 를 사용하는 경우 : [1, -2, -3, 4, 5]
In [41]:arr_result2 = np.where(arr_cond,arr_x,arr_y) print("NumPy의 where 함수를 사용하는 경우 :\n") print(arr_result2) # True,False 로 나타낼 수 있는경우엔 where function 을 사용하는게 좋다.
NumPy의 where 함수를 사용하는 경우 : [ 1 -2 -3 4 5]
In [ ]:Universal Function
'IT&컴퓨터공학 > 데이터분석개론' 카테고리의 다른 글
[데이터분석실전] 라이브러리 (0) 2021.02.16 [데이터분석개론]Cluster Analysis (1) 2021.02.16 [데이터분석개론] Collaborative Filtering (0) 2021.02.15 [데이터분석개론] Association Rules & Collaborative Filtering (0) 2021.02.14 [데이터분석개론] Naïve Bayes Classifier. 나이브베이즈 분류 (0) 2021.02.13 댓글