Python R처럼 벡터연산이 되지 않는다



list+int 연산의 오류라 list+list는 가능할 줄 알았는데, 불가능하다.

 

lambda 라는 기법을 통해 사용자 정의함수 생성

 - 간단한 인풋과 아웃풋 처리

문법 : >>> lambda input : output

 

-IN Python-

f1 = lambda x : x+10

 

- IN R-

f1 <- function(x) {

return(x+10)

}

 

적용함수

- apply : 행별, 컬럼별 연산(그룹연산)

- map  : 원소별 연산( in R = sapply )


map(func, iterrables) --> map object

 


원소별 적용을 하기 위해 map 함수 사용

but, 데이터내에만 저장. 바로 출력되지 않으므로 출력 형식 지정



list()로 형식을 지정해주니 의도한대로 출력된다.


map 사용과 미사용의 차이


 

형 변환 함수


int : 숫자로 변경할 수 있는 문자를 숫자형으로 변경

str : 숫자, 날짜 등을 문자형으로 변경

 

l1리스트를 [01,02,03] 형식으로 변경하기


-> 포맷 변환 사용



-> 형 변환 사용



실습문제


#다음의 리스트를 생성
l1 = [1,2,3,4]
l2 = [10,20,30,40]
l3 = [1.567, 2.456, 5.342, 5.534]


1. l1을 소숫점 둘째자리로 표현

f1 = lambda x:"%.2f" % x
list(map(f1,l1))


['1.00', '2.00', '3.00', '4.00']

※ 출력결과를 int로 바꾸는건 차후 학습예정

2. l3을 정수자리로 표현(버림)

import math
f2 = lambda x:math.trunc(x)
list(map(f2,l3))


[1, 2, 5, 5]

3. l1 + l2 계산

f3 = lambda x,y: x+y
list(map(f3,l1,l2))


[11, 22, 33, 44]

4. l2의 l1승 출력, 10^1, 20^2, 30^3, 40^4

f4 = lambda x,y: x ** y
list(map(f4,l2,l1))


[10, 400, 27000, 2560000]




'Python' 카테고리의 다른 글

Python 설치 & 기초 조작  (0) 2019.01.22


파이썬 다운로드 링크

https://www.python.org/downloads/windows/




파이썬(기본) + 필요 모듈 설치...(pip install 모듈명)

 

[ ipython ]

기본 파이썬 +

데이터 분석용 파이썬

기본적인 전처리 수행, knn, random forest등 제공

 numpy - 배열구조

 pandas - data frame 구조

 sklearn - 분석 알고리즘제공

....

 

tensorflow - deep learning 구현

keras - deep learning 구현

 


원소 삽입

a = (1, 2, 3)

리스트 삽입 ( list : 무언가를 여러개 담기 위한 자료구조)

a = [1, 2, 3]


위치 색인 가능. R과는 다르게 첫 값을 색인하려면 '0'


슬라이스 색인은 R과 비슷

list(n:m) : n ~ m-1 까지 추출


** 슬라이스 색인을 사용하면 차원의 축소가 일어나지 않음 - 리스트형식 그대로 출력.

 

여러개를 동시에 저장하고자 하는 자료구조

> R에서의 벡터 , python에서의 리스트

python에서는 리스트 안에 또 다른 리스트가 들어감.


위와 같은 벡터연산(R) 불가능(대체적으로)

(ex 문자열 치환)

-> 원소 적용함수 반드시 필요. (apply는 반드시 하지 말자)




포맷 변경 구문 : "리턴 포맷" % (원본대상)

# 포맷의 종류 : %d(정수), %s(문자열), %f(실수)


round : 반올림 계산 함수 (내장 함수)


math.trunc : 버림 계산 함수 (math 모듈)


안에있는 모듈 하위의 내부 함수 호출하기

 

텍스트 다루기

여러 줄로 이루어진 문자열은 '''또는 """ (작은따옴표or큰따옴표 세 개)쌍으로 텍스트를 감싸 표현


텍스트의 이어붙이기(but, 구분기호는 지정불가)





'Python' 카테고리의 다른 글

Python 적용함수  (0) 2019.01.22

+ Recent posts