일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- GPT
- ML
- MLOps
- word2vec
- ChatGPT
- Tokenization
- 설명가능성
- GPT-3
- nlp
- 트랜스포머
- 머신러닝
- cnn
- 지피티
- gpt2
- Ai
- Bert
- AI Fairness
- 인공지능
- 챗지피티
- Transformer
- 딥러닝
- 챗GPT
- fairness
- 인공지능 신뢰성
- XAI
- DevOps
- 자연어
- trustworthiness
- 케라스
- 신뢰성
- Today
- Total
research notes
Numpy/Pandas 정리 본문
1. type() and .shape
array1 = np.array([1, 2, 3])
array2 = np.array([[1, 2, 3]])
print('array1 type: ', type(array1))
print('array1 shape: ', array1.shape)
print('array2 shape: ', array2.shape)
array1 type: <class 'numpy.ndarray'>
array1 shape: (3,)
array2 shape: (1, 3)
2. ndarray data type
- ndarray 내의 데이터 타입은 같은 데이터 타입만 가능
- ndarray 데이터 값의 타입변경은 astype() 메서드를 사용
array_int = np.array([1, 2, 3])
array_float = array_int.astype('float64')
print(array_float, array_float.dtype)
[1. 2. 3.] float64
3. ndarray reshape
array1 = np.arange(10)
array2 = array1.reshape(-1, 5) # 고정된 5개의 칼럼에 맞는 로우를 자동으로 선택하여 반환
array3 = array1.reshape(5, -1) # 고정된 5개의 로우에 맞는 칼럼을 자동으로 선택하여 반환
print('array1:', array1.tolist())
print('array2:', array2.tolist())
print('array3:', array3.tolist())
print('array1 shape:', array1.shape)
print('array2 shape:', array2.shape)
print('array3 shape:', array3.shape)
array1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
array2: [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]
array3: [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]
array2 shape: (10,)
array2 shape: (2, 5)
array3 shape: (5, 2)
ndarray reshape에서 -1인자는 reshape(-1, 1)과 같은 형태로 자주 사용 된다.
ndarray0 = np.arange(3)
ndarray0_1 = ndarray0.reshape(-1, 1)
print('ndarray0:', ndarray0.tolist())
print('ndarray0 shape:', ndarray0.shape)
print('ndarray0_1', ndarray0_1.tolist())
print('ndarray0_1 shape:', ndarray0_1.shape)
print('=============')
ndarray1 = np.array([[1, 2, 3]])
ndarray2 = np.array([[1], [2], [3]])
print('ndarray1 shape:', ndarray1.shape)
print('ndarray2 shape:', ndarray2.shape)
ndarray0: [0, 1, 2]
ndarray0 shape: (3,)
ndarray0_1 [[0], [1], [2]]
ndarray0_1 shape: (3, 1)
=============
ndarray1 shape: (1, 3)
ndarray2 shape: (3, 1)
4. ndarray axis
- axis0은 row 방향의 축을 의미하며, axis1은 column 방향의 축을 의미
- row와 column은 넘파이 ndarray에서 사용되지 않는 방식
- 3차원의 경우 axis0(행), axis1(열), axis2(높이)로 사용가능
5. Boolean 인덱싱
array = np.arange(start=1, stop=10)
array_con = array[array > 5]
print('array > 5 불린 인덱싱 값 결과:', array_con)
array > 5 불린 인덱싱 값 결과: [6 7 8 9]
6. DataFrame과 Series 객체
- DataFrame['칼럼명']은 Series 객체 형태로 특정 칼럼 데이터 세트를 반환
- value_counts()를 사용하면 해당 칼럼에 속한 카테고리별 데이터 수를 반환
- DataFrame은 value_counts() 메서드를 가지고 있지 않음
value_counts = titanic_df['Pclass'].value_counts()
print(value_counts)
3 491
1 216
2 184
Name: Pclass, dtype: int64
7. ndarray, 리스트 → DataFrame 변환
col_name1 = ['col1', 'col2', 'col3']
list1 = [[1, 2, 3], [11, 12, 13]]
array1 = np.array(list1)
print('array1 shape:', array1.shape)
df_list1 = pd.DataFrame(list1, columns=col_name1)
print('2차원 리스트로 만든 DataFrame:\n', df_list1)
df_array1 = pd.DataFrame(array1, columns=col_name1)
print('2차원 ndarray로 만든 DataFrame:\n', df_array1)
array1 shape: (2, 3)
2차원 리스트로 만든 DataFrame:
col1 col2 col3
0 1 2 3
1 11 12 13
2차원 ndarray로 만든 DataFrame:
col1 col2 col3
0 1 2 3
1 11 12 13
8. DataFrame → ndarray, 리스트 변환
ndarray = df_array1.values
print('df_array1.values 타입:', type(ndarray), 'df_array1.values shape:', ndarray.shape)
print(ndarray)
list = ndarray.tolist()
print('ndarray to list:', list)
df_array1.values 타입: <class 'numpy.ndarray'> df_array1.values shape: (2, 3)
[[ 1 2 3]
[11 12 13]]
ndarray to list: [[1, 2, 3], [11, 12, 13]]
9. iloc[ ], loc[ ]
iloc[ ](integer location) → 위치 기반 인덱싱만 가능. 따라서 행과 열 위치 값으로 정수형 값을 지정해 원하는 데이터를 반환
loc[ ] (location) → 명칭 기반 인덱싱만 가능. 따라서 행 위치에 DataFrame 인덱스가 오며, 열 위치에는 칼럼 명을 지정해 원하는 데이터 반환
References:
[1] 파이썬 머신러닝 완벽가이드, 권철민, 위키북스
[2] https://www.sharpsightlabs.com/blog/numpy-axes-explained/
'머신러닝 > ML basic' 카테고리의 다른 글
K-평균 알고리즘(K-Means Clustering) (0) | 2022.02.11 |
---|---|
Validation data set는 모델 학습에 사용이 되는가? (0) | 2022.02.05 |
규제 (Regularization) (0) | 2022.01.31 |
성능평가지표 (Evaluation Metric) (0) | 2022.01.30 |
사이킷런 정리 (0) | 2022.01.28 |