본문 바로가기

Python/기초 문법

[모듈 2-6] 인공지능 개발을 위한 파이썬 배열 구조 탐구(feat. 리스트)

C언의 배열 구조

 

 

 

파이썬에서는 배열(array)가 4가지 종류로 분화된다.

-> 리스트, 튜플, 딕셔너리, 집합

 

 

 

 

리스트, 튜플, 딕셔너리, 집합의 기본 특성과 형태 -> ordered : 순서, Mutuable : 수정 가능 여부

 

 

 

[참고 자료] 리스트, 튜플, 딕셔너리, 집합에 대해 자세한 고찰 자료.

 

[파이썬] : 튜플, 리스트, 딕셔너리, 집합자료형 : 쓰는이유, 자료구조, 형변환

1. List ( 리스트 )2. Tuple ( 튜플)3. Set ( 집합 자료형 )4. Dictionary ( 딕셔너리 )​​앞선, 네가...

blog.naver.com

 

 

 

 

리스트, 튜플, 딕셔너리, 집합 간단하게 요약.

1. 리스트 : c언어 배열이랑 흡사함. 숫자로 인덱스 되어 있음. 파이썬에서 가장 많이 사용되는 자료형!!
 ex) a = [1, 2, 3],
      a[2] = 3 

2. 튜플 : 내용 수정이 불가능한 리스트
 ex) a = (1, 2 ,3)

3. 딕셔너리 : 자료가 key와 value로 한 쌍으로 묶여 있어, 키 값으로 밸류값을 찾을 수 있다. 
 ex) a = {'name' : sung, 'age' : 30, gender : 'male'}
     print(a[age]) --> 30 출력 
      # 이때, age가 key, 30이 value

4. 집합 : 값들이 중복이 불가하고, 교집합, 차집합 등 집합의 연산이 가능한 자료형
   ex) a1 = set([1, 2, 3, 4])
        a2 = set([2, 3, 5, 6])
        print("합집합 : ", a1 | a2)
         --> 합집합 : {1,2,3,4,5,6}
           # 자료의 중복을 제거하고 집합연산을 수행함.

 

 

 

[참고 자료] 리스트, 튜플, 딕셔너리, 집합 사용법에 다양한 예제 자료

 

파이썬 리스트(List), 튜플(Tuple), 딕셔너리(dictionary), 집합(Set)

파이썬에서는 숫자 또는 문자열을 담을 수 있는 자료구조를 제공합니다. 총 4개의 종류가 있으며 리스트(L...

blog.naver.com

 

 

 

하지만, 실제 인공지능 파이썬 코드에서는 주로 LIST(리스트) 자료형을 기반으로 사용된다.

이러한 리스트는 numpy(넘파이)라는 패키지의 Numpy Array이란 구조체에 들어가 사용이 되거나,

넘파이 구조체는 padas(판다스)의 DataFrame 구조에 들어가 사용된다.

 

np, df를 사용하는 이유는 리스트에서 지원하는 라이브러리 함수가 제한적이기 때문이다.

 

 

 

그래도 리스트의 기초를 알고 가는 것이 후에 인공지능 모델 알고리즘을 다루기 위해 필수적이다.

 

따라서 이번시간에 

 

고차원 리스트의 구조

리스트 구조 슬라이싱

리스트 관련 함수

 

등은 주의깊게 실습해보려고 한다.

 

 

원하는 코드 부분 드래그 후 ctr + / 을 통해 주석 처리 및 해제를 할 수 있다. 

 

# ### 1. 리스트 선언과 크기 확인
#
# a1 = [1, 2, 3]
# print(a1)
# print(len(a1))
#
# a2 = [[1, 2, 3], [4, 5, 6]]
# print(a2)
# print(len(a2))
# print(len(a2[0]))
#
#
# a3 = [[1, 2], [3, 4], [5, 6]]
# print(a3)
# print(len(a3))
# print(len(a3[0]))
# 
# ### 2. 리스트 구조 슬라이싱
# 
# a1 = [1, 2, 3, 4, 5]
# print("a1의 구조 : ", a1)
# print(a1[:2])
# print(a1[3:])
# 
# a2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# print("\na2의 구조 : ", a2)
# print("\na2의 a2[n:] 슬라이싱 : ")
# print(a2[0:])
# print(a2[1:])
# print(a2[2:])
# 
# print("\na2의 a2[:n] 슬라이싱 : ")
# print(a2[:0])
# print(a2[:1])
# print(a2[:2])
# 
# print("\na2의 a2[1:2] 슬라이싱 : ")
# print(a2[1:2])
# 
# 
# ### 3. 리스트 관련 함수 사용
# 
# # 요소 추가 함수. append(x)
# print("\nb1 append : ")
# b1 = [[1, 2, 3], [4, 5, 6]]
# b1.append([7,8,9])
# print(b1)
# 
# print("\nb2 sort : ")
# b2 = [6,5,4,3,2,7,1,76,435,34, 3, 3, 4, 5, 3]
# b2.sort()
# print(b2)
# 
# print("\nb2의 3의 갯수 count : ")
# print(b2.count(3))

 

 

다음과 같은 결과를 확인하자

C:\ProgramData\Anaconda3\envs\ai3\python.exe C:/Users/user/Desktop/ai3/wonking.py
a1의 구조 :  [1, 2, 3, 4, 5]
[1, 2]
[4, 5]

a2의 구조 :  [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

a2의 a2[n:] 슬라이싱 : 
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[4, 5, 6], [7, 8, 9]]
[[7, 8, 9]]

a2의 a2[:n] 슬라이싱 : 
[]
[[1, 2, 3]]
[[1, 2, 3], [4, 5, 6]]

a2의 a2[1:2] 슬라이싱 : 
[[4, 5, 6]]

b1 append : 
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

b2 sort : 
[1, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 7, 34, 76, 435]

b2의 3의 갯수 count : 
4

Process finished with exit code 0

 

 

 

 

 

다음시간엔 이러한 List 구조체를 더욱 확장적으로 사용할수 있는

 

Numpy(Numerical Python extensions)

Pandas(Python Data Analysis Library)

 

을 실습해 보도록 하자.

 

 

 

끝.