반응형

넘파이

- 파이썬에서 선형대수 기반의 프로그램을 쉽게 만들 수 있도록 지우너하는 대표적인 패키지

- 루프를 사용하지 않고 대량 데이터의 배열 연산을 가능하게 하므로 빠른 배열 연산 속도를 보장

- 배열 기반의 연산 및 다영한 데이터 핸들링 기능 제공

 

- NumPy의 자료형

dtype 접두사설명사용
b 불리언 b (참 혹은 거짓)
i 정수 i8 (64비트)
u 부호 없는 정수 u8 (64비트)
f 부동소수점 f8 (64비트)
c 복소 부동소수점 c16 (128비트)
O 객체 0 (객체에 대한 포인터)
S 바이트 문자열 S24 (24 글자)
U 유니코드 문자열 U24 (24 유니코드 글자)

 

 

 

사용 방법

import numpy as np  # np를 약어로 사용하는것은 개발자간의 암묵적인 사항이다.

 

넘파이의 기본 데이터타입

ndarray

- 다차원 배열 생성 및 다양한 연산 가능

- np.array(DataFrame): ndarray 반환

- shape변수: ndarray의 행, 열 반환

- ndim변수: ndarray의 차원 반환

- 데이터 타입: 숫자형, 문자열, 불(서로 다른 데이터 타입 사용시 형변환이 일어난다)

 

- 생성하기: arange(), zeros(), ones()

- 차원변경: reshape(행, 열)  # 크기를 맞추지 않으면 오류가 난다 ex) array의 길이 10 -> np.reshape(2, 5) 가능                                                                                                                              np.reshape(3, 4) 불가

 

 

- 인덱싱: 다음에 업로드하겠습니다.

반응형
반응형

파이썬은 리스트, 튜플, 딕셔너리 자료형이 존재한다.

-리스트: 변수명을 하나하나 지정해주기 힘들 때 리스트를 사용. 리스트명=[값1, 값2, 값3, ...],

앞서 배웠던 split을 통해 나누어져서 리스트에 저장된다

ex)

>>> listTest = ['test0','test1']

>>> print(listTest)

['test0','test1']

>>> print(listTest[0]) #offset 0

[test0]

>>> print(listTest[1])

[test1]

>>> print(listTest[2])

IndexError: list index out of range

 

-offset으로 항목 얻기: 리스트는 위의 ex)처럼 오프셋으로 하나의 특정 값을 추출할 수 있다.

 

-다른 데이터 타입을 리스트로 변환하기: list()

하나의 단어를 한 문자 문자열의 리스트로 변환

ex)

>>> list('cat')

['c','a','t']

 

튜플을 리스트로 변환

ex)

>>> tupleTest = ('tuple1','tuple2')

>>> list(tupleTest)

['tuple1','tuple2']

 

 

 

-offset으로 항목 바꾸기

ex)

>>> offsetTest = ['test0','test1']

>>> offsetTest[1] = 'offsetTest1'

>>> offsetTest

['test0','offsetTest1']

 

-슬라이스로 항목 추출하기

ex)

>>> Test = ['test0','test1']

>>> Test[0:2]

['test0','test1']

 

-리스트의 끝에 항목 추가하기 append(): 리스트의 끝에 새 항목을 추가한다.

ex)

>>> appendTest = ['test0','test1']

>>> appendTest.append('appendTest1')

>>> appendTest

['test0','test1', 'appendTest1']

 

리스트 병합하기 extend() or += : 리스트에 새로운 리스트를 병합

ex1)

>>> extendTest = ['test0','test1']

>>> test = ['extendTest1','extendTest2']

>>> extendTest.extend(test)

>>> extendTest

['test0','test1','extendTest1','extendTest2]

 

ex2)

>>> extendTest = ['test0','test1']

>>> test = ['extendTest1','extendTest2']

>>> extendTest += test

>>> extendTest

['test0','test1','extendTest1','extendTest2]

 

offset과 insert()로 항목 추가하기: append()함수는 리스트의 끝에 항목을 추가한다. 그와 다르게 insert() 함수는 원하는 위치에 항목을 추가가능

ex)

>>> insertTest = ['test0','test1']

>>> insertTest.insert(1,'insertTest1')

>>> insertTest

['test0', 'insertTest1', 'test1']

>>> insertTest.insert(10,'insertTest1') #리스트의 끝을 넘는 offset을 사용할 경우 append()처럼 항목 추가

>>> insertTest

['test0', 'test1', 'insertTest1']

 

값으로 항목 삭제하기 remove(): 리스트에서 삭제할 항목의 위치를 모르는 경우. remove()와 값으로 그 항목을 삭제할 수 있다.

ex)

>>> removeTest = ['test0','test1']

>>> removeTest.remove('test1')

>>> removeTest

['test0']

 

offset으로 항목을 얻은 후 삭제하기 pop(): pop()는 리스트에서 항목을 가져오는 동시에 그 항목을 삭제한다. 잘라내기 느낌

인자가 없다면 -1을 사용한다

ex)

>>> popTest = ['test0','test1', 'test2', 'test3']

>>> popTest.pop()

'test3'

>>> popTest

['test0','test1', 'test2']

>>> popTest.pop(1)

'test1'

>>> popTest

['test0', 'test2']

 

값으로 항목 오프셋 찾기 index(): 항목 값의 리스트 오프셋을 찾기 위해 사용

ex)

>>> indexTest = ['test0', 'test1', 'test2']

>>> indexTest.index('test0')

0

 

존재여부 확인하기 in

ex)

>>> inTest = ['test0', 'test1', 'test2']

>>> 'test0' in inTest

True

 

갑 세기 count(): 리스트에 특정 값이 얼마나 있는지 세기 위해서 사용

ex)

>>> countTest = ['test0', 'test1', 'test2']

>>> countTest.count('test0')

1

>>> countTest.count('no')

0

 

문자열로 변환하기 join()

ex)

>>> joinTest = ['test0', 'test1', 'test2']

>>> ', '.join(joinTest)

'test0', 'test1', 'test2'

 

 

항목 개수 얻기 len(): 리스트의 항목 수를 반환한다.

ex)

>>> lenTest = ['test0', 'test1', 'test2']

>>>len(lenTest)

3

 

할당 =, 복사 copy()

 

ex)

>>> test = [1,2,3]

>>> test

[1,2,3]

>>> test_sub = test

>>> test_sub

[1,2,3]

반응형
반응형

문자열

-표현은 ' 단일 인용부호', '이중 인용부호'를 사용할 수 있다.

-문자열은 인용부호 안의 공백한까지 입력을 받아 보존한다.

-파이썬은 빈 공백을 할당할 수 있으며, 이 공백은 다른 데이터를 입력받을 때 유용하게 사용 가능

 

문자열 결합

ex)

>>> num = 50

>>> num_bottle = ' '

>>> num_bottle += 'empty : '

>>> num_bottle += str(num)

>>> num_bottle

' empty : 50'

>>> ex = '복제'

>>> print(ex*3)

복제복제복제

 

-str(num)은 전 시간에 공부했던 int형을 string형으로 데이터 타입 변경으로 사용된다

-문자열은 +를 사용하여 결합 할 수 있다.

-문자열은 *을 사용하여 복제 할 수 있다.

 

-이스케이프 시퀀스

문자열로 표현하기 힘든 부호들을 표현해 준다.

 

이스케이프 문자

기능

\n

다음 줄로 이동(개행)

\r

해당 줄의 처음으로 이동

\t

8칸 공백

\'

'문자

\"

"문자

\\

\문자

 

ex)

>>> print('개행을 하겠습니다.\n 됐습니다')

개행을 하겠습니다.

됐습니다

 

>>> print('탭 \t 공백')

탭 공백

 

>>> print('문자열에 \' 사용하기')

문자열에 ' 사용하기

 

>>> print('문자열에 \" 사용하기')

문자열에 " 사용하기

 

>>> print('문자열에 \\ 사용하기')

문자열에 \ 사용하기

 

-\n을 사용할 경우 다음 문구 출력이 개행된 것을 볼 수 있다.

-\t를 사용할 경우 8칸의 공백이 생기는 것을 볼 수 있다.

-\', \", \\ 을 사용할 경우 ', ", \ 각 각을 출력 할 수 있는것을 볼 수 있다.

 

-주석 #:사용할 경우 # 뒤에 내용이 출력되지 않는다.

ex)

>>> print('주석 예제') #주석을 사용해 볼게요

주석 예제

 

문자 추출

해당 변수명에 [원하는 글자의 위치 -1] 를 사용하여 출력할 수 있다.

ex)

>>> letter = 'andong AI'

>>> letter[0]

'a'

>>> letter[1]

'd'

>>> letter[6]

' '

>>> letter[-1]

'I'

 

슬라이스[시작:끝:너뛰기]

ex)

>>> letter = 'andong AI Study'

>>> letter[:] # 처음부터 끝까지 출력

andong AI Study

>>> letter[6:] #7번째 ~ 끝 출력

AI Study

>>> letter[:6] #처음부터 6번째까지 출력

andong

>>> letter[7:9] #7번째 ~ 9번째 출력

AI

>>> letter[2:9:2] #3번째 ~ 9번째까지 2 간격으로 출력

dn ISuy

 

인용 부호로 문자열 생성 하기

ex)

>>> a = '''String Test #줄바꿈 문자는 Triple Quotation에만 허용

>>> Line'''

>>> b = "String Test"

>>> print(a)

String Test

Line

>>> print(b)

String Test

 

문자열 나누기 split()

-() 안 함수 인자로 문자열(string)을 나눈다.

 

ex)

>>> splitTest = 'I Am/ANU/student'

>>> result1 = splitTest.split('/')

>>> print(result1)

'I AM','ANU','student'

 

문자열 합치기 join()

-()안의 문자열 사이에 특정 문자(열)을 삽입하여 새로운 문자열 생성

 

ex)

>>> joinTest1 = 'student'

>>> result1 = '-'.join(joinTest1)

>>> print(result1)

s-t-u-d-e-n-t

 

>>> joinTest2 = ['I AM','ANU','student']

>>> result2 = '-'.join(joinTest2) #대상에 문자열을 원소로 갖는 리스트(list)를 입력하면

#split의 반대 작업을 함

>>> print(result2)

I AM-ANU-student

 

문자열 대체하기 replace()

-문자열을 찾아 해당 문자열로 대체

 

ex)

>>> replaceTest = '파이썬 프로그래밍'

>>> print(replaceTest.replace('파이썬','Python'))

Python 프로그래밍

반응형
반응형

데이터 타입

-부울(bool): True or False 자바의 boolean 참 혹은 거짓을 반환

-정수(integer): 숫자

-실수(float): 소수점이 있는 수자 혹은 지수

-문자열(string): 텍스트

 

-객체: 파이썬에서는 모든것이 객체로 구현되어 있음

-변수:단지 이름일 뿐. 의미는 값을 복사 하는 것이 아닌 데이터가 담긴 객체에 이름을 붙이는 것, 그 이름은 객체 자신에 포함되는 것 이라기 보다는 객체의 참조

Ex)

>>> a = 7

>>>type(a)

<class 'int'>

 

>>> a = True

>>> type(a)

<class 'bool'>

 

>>> a = 6.5

>>> type(a)

<class 'float'>

 

>>> a = 'Hi there'

>>> type(a)

<class 'str'>

 

수의 표현

Ex)

>>> 10/4

2.5

 

>>> 10//4 /를 두번 쓰면 부동 소수점을 날리고 정수만 출력

2

 

-연산의 우선순위: 우리가 일상생활에서 사용하는 순서대로 처리

 

-형변환: 데이터 타입의 변화 1과 '1'은 정수형과 문자형으로 다른 타입

Ex)

>>> a = 3.4

>>> type(a)

<class 'float'>

>>>a = int(a)

>>>type(a)

<class 'int'>

 

파이썬2.x

int의 크기: 32bit

long: 64bit

파이썬3.x

long가 사라지고 int의 크기가 유연해짐

메모리가 허용하는 한, 무한대에 가까운 정수와 실수를 표현 할 수 있는 것이다.

 

참고도서

파이썬 메뉴에 있는 글은

처음 시작하는 파이썬(빌 루바노빅, 최길우 옮김) 한빛미디어 도서를 참고했습니다.

 

 

반응형

+ Recent posts