달력

3

« 2024/3 »

  • 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
  • 31
728x90
반응형

[파이썬을 활용한 데이터 전처리 Level UP- 2 회차 미션 시작]

* 복습

어제 데이터 전처리에 대한 대략적인 중요성 및 개요에 대해서 들었으며 리스트와 튜플에 대해서 배워보았다.

리스트와 튜플의 가장 큰 차이점은 튜플은 수정을 할 수 없다는 것이다. 그 외에는 리스트와 튜플의 공통점은 Iteration이 된다는 것 등등 많은 부분이 있었다.


Chapter 02. 데이터를 어떻게 표현할 것인가 - 파이썬 주요 데이터 구조 - 02. 사전

 

* 개요

- 사전(dictionary)이란 키(key)와 값(value) 쌍으로 이루어진 해시 테이블(hash table)임

 

- key는 불변의 값을 사용하며, value는 불변 혹은 가변에 상관없이 사용 가능함

 

- 사전은 다음과 같이 정의할 수 있음

dic = {key 1: value 1, key 2: value 2, key 3: value 3}

 

// Dictionary에 대한 Documention을 찾아봤다. Data Structures안에 내용들이 함께 들어있었다.

docs.python.org/3/tutorial/datastructures.html#dictionaries

 

* 사전 요소에 접근하기 및 바꾸기

- 사전 요소에 접근하기: dict[key]

- 사전 요소 변경 및 추가: dict[key] = new value

- 사전 요소 삭제: del(dict[key])

 

* 사전 관련 함수: 요소 확인하기

- 키 리스트 받기 : .keys( )

- 값 리스트 받기 : .values( )

- key, value 쌍 얻기 : .items( )

=> 위 함수들은 주로 값을 효율적으로 순회하거나 변경할 때 주로 사용된다고 한다.

ex_dict = {"a": "anteater", "b": "bumblebee", "c": "cheetah"}

ex_dict.keys()
# ["a","b","c"]

ex_dict.values()
# ["anteater", "bumblebee", "cheetah"]

ex_dict.items()
# [("a","anteater"),("b","bumblebee"),("c","cheetah")]

 

// 상기와 같은 내용 이외에도 인터넷으로 공부하다가 알게된 get( ) method

Python provides a .get() method to access a dictionary value if it exists. This method takes the key as the first argument and an optional default value as the second argument, and it returns the value for the specified key if key is in the dictionary. If the second argument is not specified and key is not found then None is returned.

# without default
{"name": "Victor"}.get("name")
# returns "Victor"

{"name": "Victor"}.get("nickname")
# returns None

# with default
{"name": "Victor"}.get("nickname", "nickname is not a key")
# returns "nickname is not a key"

// get 메소드를 가끔은 사용할수도 있을 것 같다. 굳이 조건문을 통하지 않더라도 어떠한 dictionary 에 적당한 값이 있는지 없는지를 알기에도 적당할 듯한다.

 

// 전에 배운 list 형태에서 사용한 pop method 도 사용할 수 있다.

Python dictionaries can remove key-value pairs with the .pop() method. The method takes a key as an argument and removes it from the dictionary. At the same time, it also returns the value that it removes from the dictionary.

famous_museums = {'Washington': 'Smithsonian Institution', 'Paris': 'Le Louvre', 'Athens': 'The Acropolis Museum'}
famous_museums.pop('Athens')
print(famous_museums) # {'Washington': 'Smithsonian Institution', 'Paris': 'Le Louvre'}

 

Chapter 02. 데이터를 어떻게 표현할 것인가 - 파이썬 주요 데이터 구조 - 03. 반복문과 comprehension

 

* 반복문 기초

- for문 기초 문법

. 순회 가능한 자료형(리스트, 튜플 등)의 요소를 순서대로 element에 저장하여 특정 구문을 반복함

 

- break: 현재 속한 반복문을 중지시키며, 보통 if문과 같이 사용

 

// 사실상 for문법과 함께 while 구문에 대해서 같이 원래 언급을 했는데. 기본적인 문법에 대해서 간략히 하니 확실히 차별성은 느껴진다.

 

* 대표적인 이터레이터 객체 생성 함수

- 이터레이터 객체는 값을 차례대로 꺼낼 수 있는 객체를 의미 (리스트, 튜플)

- range, itertools 모듈에 있는 주요 함수 등을 통해서도 이터레이터를 생성할 수 있음.

. 단, 이러한 이터레이터는 리스트나 튜플 등이 아니라 순회만 가능한 객체임

 

* 대표적인 이터레이터 객체 생성 함수 : range

- range(start, end, step)

. start 인데스부터 end 인덱스까지 step으로 건너 뛴 부분 이터레이터 객체를 반환

. 값을 하나만 넣으면 end로 인식됨 : range(end) = ragne(0, end, 1)

. 값을 두 개를 넣으면 start와 end로 인식됨 : range(start, end) = range(start, end, 1)

 

* 대표적인 이터레이터 객체 생성 함수 : itertools 모듈 함수

- itertools 모듈은 다양한 종류의 이터레이터 객체를 생성하는 함수로 구성됨

- itertools.prouect(*L)

. 순회 가능한 여러 개의 객체를 순서대로 순회하는 이터레이터를 생성

- itertools 모듈 실습

 

// itertools는 생소해서 구글링을 통해서 좀 알아봤다.

docs.python.org/3/library/itertools.html?highlight=loop

Infinite iterators:

IteratorArgumentsResultsExample

count()

start, [step]

start, start+step, start+2*step, …

count(10) --> 10 11 12 13 14 ...

cycle()

p

p0, p1, … plast, p0, p1, …

cycle('ABCD') --> A B C D A B C D ...

repeat()

elem [,n]

elem, elem, elem, … endlessly or up to n times

repeat(10, 3) --> 10 10 10

Iterators terminating on the shortest input sequence:

IteratorArgumentsResultsExample

accumulate()

p [,func]

p0, p0+p1, p0+p1+p2, …

accumulate([1,2,3,4,5]) --> 1 3 6 10 15

chain()

p, q, …

p0, p1, … plast, q0, q1, …

chain('ABC', 'DEF') --> A B C D E F

chain.from_iterable()

iterable

p0, p1, … plast, q0, q1, …

chain.from_iterable(['ABC', 'DEF']) --> A B C D E F

compress()

data, selectors

(d[0] if s[0]), (d[1] if s[1]), …

compress('ABCDEF', [1,0,1,0,1,1]) --> A C E F

dropwhile()

pred, seq

seq[n], seq[n+1], starting when pred fails

dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1

filterfalse()

pred, seq

elements of seq where pred(elem) is false

filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8

groupby()

iterable[, key]

sub-iterators grouped by value of key(v)

islice()

seq, [start,] stop [, step]

elements from seq[start:stop:step]

islice('ABCDEFG', 2, None) --> C D E F G

starmap()

func, seq

func(*seq[0]), func(*seq[1]), …

starmap(pow, [(2,5), (3,2), (10,3)]) --> 32 9 1000

takewhile()

pred, seq

seq[0], seq[1], until pred fails

takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4

tee()

it, n

it1, it2, … itn splits one iterator into n

zip_longest()

p, q, …

(p[0], q[0]), (p[1], q[1]), …

zip_longest('ABCD', 'xy', fillvalue='-') --> Ax By C- D-

Combinatoric iterators:

IteratorArgumentsResults

product()

p, q, … [repeat=1]

cartesian product, equivalent to a nested for-loop

permutations()

p[, r]

r-length tuples, all possible orderings, no repeated elements

combinations()

p, r

r-length tuples, in sorted order, no repeated elements

combinations_with_replacement()

p, r

r-length tuples, in sorted order, with repeated elements

ExamplesResults

product('ABCD', repeat=2)

AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD

permutations('ABCD', 2)

AB AC AD BA BC BD CA CB CD DA DB DC

combinations('ABCD', 2)

AB AC AD BC BD CD

combinations_with_replacement('ABCD', 2)

AA AB AC AD BB BC BD CC CD DD

 

 

- itertools.combinations(p, r)

. 이터레이터 객체 p에서 크기 r의 가능한 모든 조합을 갖는 이터레이터를 생성

 

Return r length subsequences of elements from the input iterable.

The combination tuples are emitted in lexicographic ordering according to the order of the input iterable. So, if the input iterable is sorted, the combination tuples will be produced in sorted order.

Elements are treated as unique based on their position, not on their value. So if the input elements are unique, there will be no repeat values in each combination.

Roughly equivalent to:

def combinations(iterable, r):
    # combinations('ABCD', 2) --> AB AC AD BC BD CD
    # combinations(range(4), 3) --> 012 013 023 123
    pool = tuple(iterable)
    n = len(pool)
    if r > n:
        return
    indices = list(range(r))
    yield tuple(pool[i] for i in indices)
    while True:
        for i in reversed(range(r)):
            if indices[i] != i + n - r:
                break
        else:
            return
        indices[i] += 1
        for j in range(i+1, r):
            indices[j] = indices[j-1] + 1
        yield tuple(pool[i] for i in indices)

// 각 요소들을 조합해서 경우의 수에 대해서 모두 보여 주는 것이다. 이것 또한 잘 만 이용하면 좋을 것 같은데...

 

The code for combinations() can be also expressed as a subsequence of permutations() after filtering entries where the elements are not in sorted order (according to their position in the input pool):

def combinations(iterable, r):
    pool = tuple(iterable)
    n = len(pool)
    for indices in permutations(range(n), r):
        if sorted(indices) == list(indices):
            yield tuple(pool[i] for i in indices)

The number of items returned is n! / r! / (n-r)! when 0 <= r <= n or zero when r > n.

 

- itertools.permutations(p, r)

. 이터레이터 객체 p에서 크기 r의 가능한 모든 순열을 갖는 이터레이터를 생성

The code for permutations() can be also expressed as a subsequence of product(), filtered to exclude entries with repeated elements (those from the same position in the input pool):

def permutations(iterable, r=None):
    pool = tuple(iterable)
    n = len(pool)
    r = n if r is None else r
    for indices in product(range(n), repeat=r):
        if len(set(indices)) == r:
            yield tuple(pool[i] for i in indices)

// permutations function 안에서도 for 문과, if 문을 이용해서 tuple 형태로 반환해주고 있다.

 

 

 

* list comprehension

- list comprehension은 for문을 사용하여 한 줄로 리스트를 효과적으로 생성하는 방법임

- 예시

- 조건문은 생략 가능함.

 

* dictionary comprehension

- dictionary comprehension은 for문을 사용하여 한 줄로 사전을 효과적으로 생성하는 방법임

 

 

Chapter 02. 데이터를 어떻게 표현할 것인가 - 파이썬 주요 데이터 구조 - 02. Numpy의 데이터 구조

* 개요

- Numpy의 자료형은 ndarray로 효율적인 배열 연산을 하기 위해 개발되었음

- 리스트와 ndarray는 유연성과 효율성을 기준으로 비교할 수 있음

 

- list는 float, str 등 모든 요소를 저장할 수 있음

- ndarray 는 float, str 등을 정의해줘야 한다.

- ndarray 는 C로 구현된 내부 반복문을 사용하여 속도가 매우 빠른 편이다.

 

* 배열 만들기: np.array 함수

- np.array 함수를 사용하여 ndarray를 생성할 수 있음

// 사용하기 전에는 numpy 를 import 해줘야 한다.

import numpy as np

- np 로 as하는 것은 가장 많이 쓰는 약속 같은 것이다.

// numpy 에 대해서 cheat sheet 를 보는 것이 좋을 것 같아서 검색해보면 죄다. 어디로 연결되거나 길다....

// 공식 홈페이지

numpy.org/doc/

// 이곳에서 설명하는 numpy 에 대한 자료는 수백페이지..ㅠ.ㅠ

 

* 배열 만들기: 다양한 함수

- 관련 함수를 사용해서 특정 패턴을 갖는 ndarray를 생성할 수 있음

. np.zeros(shape)

.. shape(튜플) 모양을 갖는 영벡터/영행렬 생성

.. np.zeros((10,2)) : (10, 2) 크기의 영행렬 생성

// zeros 에 대한 정의는 한번 찾아봤다.

더보기

numpy.zeros(shape, dtype=float, order='C')

Return a new array of given shape and type, filled with zeros.

Parametersshapeint or tuple of ints

Shape of the new array, e.g., (2, 3) or 2.

dtypedata-type, optional

The desired data-type for the array, e.g., numpy.int8. Default is numpy.float64.

order{‘C’, ‘F’}, optional, default: ‘C’

Whether to store multi-dimensional data in row-major (C-style) or column-major (Fortran-style) order in memory.

Returnsoutndarray

Array of zeros with the given shape, dtype, and order.

s = (2,2)
np.zeros(s)
# array([[ 0.,  0.],
#       [ 0.,  0.]])

. np.arange(start, stop, step)

.. start부터 sotp까지 step만큼 건너뛴 ndarray를 반환 (단, start와 stpe은 생략 가능)

.. np.arrange(1, 5, 0.1) : ndarray([1, 1.1, 1.2, ..., 4.9])

 

. np.linspace(start, stop, num)

.. start부터 stop까지 num 개수의 요소를 가지는 동간격의 1차원 배열을 반환

.. np.linspace(0, 1, 9) : ndarray([0., 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0])

 

* 인덱싱과 슬라이싱

- 기본적인 인덱싱과 슬라이싱은 리스트 자료형과 완전히 동일함

- 2차원 배열인 경ㅇ, X[i, j]는 i행 j열에 있는 요소를 나타냄. (c.f. X가 리스트라면, X[i][j]로 접근함.)

- 부울 리스트도 인덱스로 사용할 수 있으며, True인 요소와 대응되는 요소만 가져옴

- 여러 개의 인덱스를 리스트 형태로 입력 받을 수도 있음

 

* 유니버셜 함수

- 유니버셜 함수는 ndarray의 개별 요소에 반복된 연산을 빠르게 수행하는 것을 주 목적으로 하는 함수

- ndarray x와 y에 대해, 덧셈, 뺄셈, 곱셈, 제곱 등 다양한 배열 간 이항 연산을 지원함.

- 유니버셜 함수는 단순 반복문에 비해, 매우 빠름

 

* 브로드캐스팅

- 다른 크기의 배열에 유니버셜 함수를 적용하는 규칙 집합으로, 큰 차원의 배열에 맞게 작은 배열이 확장됨.

- 첫번째 케이스와 두번째 케이스가 가장 많이 쓰인다.

- 첫번째 케이스에서 복제를 해서 각각 더한다.

 

- 브로드캐스팅 예시: z-normalization

 

* 비교 연산자

- 비교 연산자의 결과는 항상 부울 타입의 배열임

- 따라서 비교 연산자의 결과를 바탕으로 조건에 맞는 요소 탐색에 활용할 수 있음

 

sum(cond) - True는 1이고, False 0이기 때문에 더해도 개수가 나오게 된다.

 

[파이썬을 활용한 데이터 전처리 Level UP-Comment]
오늘 강의에서는 새로운 itertools 라는 구문에 대해서 배울 수 있었다. combination 기능을 잘만 이용하면 좀 더 빠른 연산을 할 수 있을 것 같기도 한데.. 불필요한 for 문이나 if 문 등 반복문과 조건문을 줄이기 위해서는 comprehension 문을 잘 사용하여야 하지만, 아직까지 그렇게 손에 있지 않는다.
for 문 내에서도 다양한 조건 등을 걸어서 coding을 하다 보니 코딩만 더러워지고 있다. 거기에 time loose만 들어나고.. 

좀 더 가다듬을 필요성은 느낀다.

 

https://bit.ly/3m7bW22

 

 

파이썬을 활용한 데이터 전처리 Level UP 올인원 패키지 Online. | 패스트캠퍼스

데이터 분석에 필요한 기초 전처리부터, 데이터의 품질 및 머신러닝 성능 향상을 위한 고급 스킬까지 완전 정복하는 데이터 전처리 트레이닝 온라인 강의입니다.

www.fastcampus.co.kr

 

728x90
반응형
:
Posted by 패치#노트
728x90
반응형

오늘부터 패캠에서 수강과목에 대한 환급챌린지를 시작하게되었네요.

어차피 데이터분석에 대해서 공부를 하고 있는 요즘이라..

이런 기회를 통해서 미션을 완료하게 되면 강의도 공짜로 듣고.

그 걸 통해서 공부도 더 열심히하게 되니깐 일거양득....

아자아자!! 화이팅!!!!

 

Part1. 데이터핸들링

 

[Chapter 01. 시작에 앞서 데이터 전처리는 왜 중요할까 - 01. 데이터 전처리의 중요성 및 개요]

- 현실데이터는 분석 목적에 맞게 정리되어 있지않아, 데이터 분석 기법을 그대로 적용하기 어려움

 

* 현실 데이터 사례

- P 밸브사 - 수요 예측의 주문서 데이터가 파일명, 폴더 등이 정리되어 있지 않음.

- 포맷이 다른 주문서: 통일되지 않은 셀 위치와 제목 셀 이름이 정확하지 않음.

- 이런 경우에는 효과적으로 정리하는 방법이 필요함

 

- M공업사 - 설비 비가동 시점 예측

- 시간으로 정리되어 있으나 시간순서가 비정상적인 시간순서로 정리되어 있음- 기록되지 않은 알람이 포함되어 있음- 결측치 등이 다수 존재- 특수한 형태의 16진수로 구성된 리스트가 있음

 

- K홈쇼핑 - 매출 예측을 통한 방송 편성 최적화- 기존 홈쇼핑 방송 기록을 바탕으로 상품별 매출을 예측하고, 매출을 최대화하는 방향으로 방송을 편성하는 프로젝트- 불필요한 값이 너무 많아 데이터가 매우크고, 프로젝트 목표에 부합하지 않는 구조의 데이터임- 이와 같은 경우에는 잘 정리된것 처럼 보이지만 초심자의 경우에는 더 어려움을 느낄 수 있음

- 데이터 분석에 소요되는 시간- 모든 데이터 분석 프로젝트에서 데이터 전처리는 필수적인 과정이며, 많은 분석가들이 데이터 전처리에 가장 많은 시간을 투입함

. Cleaning and organizing data: 60%

. Collecting data sets: 19%

=> 이러한 결과를 바탕으로 전체 분석 시간의 79%를 사용한다고 한다. 전처리 역량이 분석 시간을 줄이는데 가장 중요하다는 의미이다.

// 하기사 코드를 짤때도 디버그야말로...진정한..시간잡아먹기.ㅠ.ㅠ

 

- 데이터 전처리의 주요 효과- 효율적인 분석을 가능하게 해준다.- 불필요한 정보를 제거함으로써 인사이트를 얻는데 도움이 된다.- 머신러닝 모델의 성능을 향상시킨다.

 

[Chapter 01. 시작에 앞서 데이터 전처리는 왜 중요할까 - 02. 데이터 전처리를 잘하는 방법]

* 경험을 쌓아라

- 데이터 전처리 역량을 쌓는 가장 확실한 방법은 좋은 경험을 많이 쌓는 것이다.

- 대다수의 경험은 "이런 방법을 쓰니까 시간만 날리더라. 다른 방법이 제일 좋았다"라는 레퍼런스가 됨

- 크롤링한 뉴스에서 단어 추철 및 변환하기 사례.. 데이터 추출하는 과제였는데.. 각각의 중요단어를 추출했어야 하지만.. 간단하게 띄워쓰기 등을 기준으로 했었다.

=> 형태소 분석 등등을 이용했어야 했다.

=> 실수를 통해서 지속적인 경험을 쌓아야지만 효과적인 방법으로 전처리를 할 수가 있다.

 

* 결과를 생각하라.

- 전처리의 결과인 전처리된 데이터의 구조를 미리 생각해야 불필요한 피드백 루프를 막을 수 있음

- 피드백 루프.. 처리된 데이터가 다시 돌아간다는 의미

 

* 처리 과정을 생각하라.

- 원 데이터를 결과 데이터로 바꾸기 위한 과정을 단계별로 정의해야 함

- 결과에 대해서 계획을 세워야 한다.

 

* 검색능력을 쌓아라.

- 데이터 전처리에 대한 기초적인 역량을 십분 발휘하기 위해서는, 필요한 전처리를 수행하는 방법을 검색하는 역량을 쌓아야 한다... 구글링을 많이 해라.

// 개인적으로도 네이버나 국내 검색엔진보다는 구글을 사용하는 것이 좋았다. 되도록이면 한글보다는 영어를 사용해서 전처리를 하는 것이 더 좋다.

- 검색쿼리 Tip: pytho, 모듈, how, 내용을 포함.

 

 

[Chapter 02. 데이터를 어떻게 표현할 것인가 - 파이썬 주요 데이터 구조 - 01. 리스트와 튜플]

* 데이터를 어떻게 표현할 것인가: 파이썬 주요 데이터 구조

* 개요

- 리스트(list)와 튜플(tuple) 모두 여러 데이터를 담는 컨테이너형 변수임

- 리스트의 정의: [Data 1, Data 2, ..., Data n]

. 다양한 요소 형태가 가능

ex1) L1 = [1, 2, 3, 4, 5]

ex2) L2 = ['a', 'b', 'c', 1, 2]

ex3) L3 = [1, 2, [3, 4]]

 

- 튜플의 정의: (Data 1, Data 2, ..., Data n)

ex1) T1 = (1, 2, 3, 4, 5)

ex2) T2 = ('a', 'b', 'c', 1, 2)

ex3) T3 = (1, 2, [3, 4])

 

* 공통점1. 인덱싱과 슬라이싱

- 리스트와 튜플 모두 인덱싱과 슬라이싱이 가능함

 

- 인덱싱 방법

. List[i], Tuple[i]: 앞에서 i번째 요소까지 (0부터 시작함)

. List[-i], Tuple[-i]: 뒤에서 i번째 요소(-1부터 시작함)

 

- 슬라이싱 방법: List[start:end:step], Tuple[start:end:step]

. start인덱스부터 end 인덱스까지 step으로 건너 뛴 부분 리스트 혹은 튜플을 반환

. step은 default가 1로 입력하지 않아도 무방함. List[start:end]

. start와 end도 입력하지 않아도 되나, 콜론( : )은 넣어야 함.

// 콜론을 넣지 않으면 그냥 인덱싱값으로 나온다.

 

- 연습

List1 = [10, 9, 8, 6]
List1[2]
List1[0:3]
List1[2:]
List1[0:4:2]

=> List1[2] = 8

=> List1[0:3] = [10, 9, 8]

=> List1[2: ] = [8, 6]

=> List1[0:4:2] = [10, 8]

위와 같이 인덱싱 및 슬라이싱을 할 수 있다.

슬라이싱 = > 다시 리스트 형태로 반환함

 

* 공통점2. 순회 가능(interable)

- 리스트와 튜플 모두 for문을 이용하여 순회를 할 수 있음

- 따라서 max, min 등의 순회 가능한 요소를 입력 받는 함수의 입력으로 사용할 수 있음

 

* 차이점1. 가변과 불변

- 리스트의 요소는 바꿀 수 있으나, 튜플의 요소는 바꿀 수 없음

- 튜플의 요소 변경시에는 Type error가 발생함

 

- 따라서 리스트는 사전의 key로 사용할 수 없지만, 튜플은 사전의 key로 사용 가능함.

. Tip1. 불변의 자료형(int, float, str 등)만 사전의 key로 사용할 수 있다.

. Tip2. 조건 등을 입력으로, 해당 조건에 대응되는 값들을 출력으로 하는 사전 구축은 의로 많이 데이터 전처리에서 사용된다.

 

* 차이점2. 순회 속도

- 순회 속도는 리스트보다 튜플이 약간 더 빠름

- 따라서 요소를 변경할 필요가 없고, 요소에 대한 연산 결과만 필요한 경우에는 리스트보다 튜플이 적합함.

- 데이터가 큰 경우에 한해서, 리스트로 작업후, 튜플로 자료형을 바꾼 후 순회를 하게 시간을 조금이라도 줄 일 수 있게 된다.

- 바꾸는 방법

. 리스트 -> 튜플: tuple(리스트)

. 튜플 -> 리스트: list(튜플)

 

- time 함수를 사용해서 측정함

// %timeit 을 사용할 수는 없을까?

 

* 리스트 관련 함수: 요소 추가

- List.append(x): 새로운 요소 x를 맨 뒤에 추가

 

- List.inser(a, x): 새로운 요소 x를 a위치에 추가 (기존에 있던 요소는 뒤로 한 칸씩 밀림)

 

- List.remove(x): 기존 요소 x를 제거 (단, x가 여러 개면 맨 앞 하마나 지워지고, 없으면 오류 발생)

 

- List.pop( ): 맨 마지막 요소를 출력하면서 그 요소를 삭제(stack 구조)

 

- List.index(x): x의 위치를 반환(단, x가 여러 개면 맨 앞 인덱스를 반환하고, 없으면 오류 발생)

 

* 리스트 관련 함수: 확장하기

- List1 + List2: 두 리스트를 그대로 이어 붙임(튜플도 가능)

 

- List1. extend(List2): 함수도 있지만 실제는 더하기 함수를 더 많이 사용한다.

 

* 튜플 관련 함수

- 튜플은 요소 변경이 불가능하므로, 추가 및 제거 관련 함수를 지원하지 않음.

- 튜플은 사실 소괄호를 쓰지 않아도 된다는 특징 덕분에 SWAP(값을 서로 변경), 함수의 가변인자 및 여러개의 출력을 받는데 많이 사용함.

# 여러개의 요소 일때는 별도의 소괄호를 하지 않아도 인식이 된다.
T = 1, 2, 3, 4
print(T)

# 하나의 요소 일때는 ,를 삽입해줘야 한다.
T = 1,
print(T)

=> Result : (1, 2, 3, 4)

자동으로 인식. 여러개의 요소를 가지고 있을 때는 별도 소괄호를 진행하지 않아도 인식이 된다.

 

=> Result : (1,)만약에 하나의 요소만 튜플로 만들고 싶으면 반드시 ,(쉼표)를 찍어줘야 인식이 된다.

 

[파이썬을 활용한 데이터 전처리 Level UP-Comment]

현재 데이터는 열심히 모으고 있지만 이것을 어떤식으로 활용할지 또 모은 자료를 어떤식으로 효율적으로 전처리할지에 대해서는 늘 고민이 많았었는데.. 이 기회를 통해서 습득하자!! 열심히~^^

오늘 부터 미션을 위해서 정리하면서 공부해보지만, 다른 여타의 강의와 다르게 기본적인 파이썬 문법을 바로 강의하지 않고 리스트, 튜플에 대해서 먼저 배우기 시작했다. 간략한 문법 설명과 실습을 통해서 빠르게 배울 수 있었다.

앞으로의 강의도 재미있을 것 같다.

 

 

 

https://bit.ly/3m7bW22

 

파이썬을 활용한 데이터 전처리 Level UP 올인원 패키지 Online. | 패스트캠퍼스

데이터 분석에 필요한 기초 전처리부터, 데이터의 품질 및 머신러닝 성능 향상을 위한 고급 스킬까지 완전 정복하는 데이터 전처리 트레이닝 온라인 강의입니다.

www.fastcampus.co.kr

 

728x90
반응형
:
Posted by 패치#노트
728x90
반응형

https://www.sciencemag.org/news/2020/10/how-might-president-donald-trump-be-treated-covid-19

How might President Donald Trump fare with COVID-19?

“Obviously, the president of the United States has access to everything”

www.sciencemag.org

Update, 2 October, 4:40 p.m.: The White House released a statement regarding the treatment the president has received: “Following PCR-confirmation of the President’s diagnosis, as a precautionary measure he received a single 8 gram dose of Regeneron’s polyclonal antibody cocktail. He completed the infusion without incident. In addition to the polyclonal antibodies, the President has been taking zinc, vitamin D, famotidine [Pepcid], melatonin and a daily aspirin.”

업데이트, 10 월 2 일 오후 4시 40 분 : 백악관은 대통령이받은 치료에 관한 성명을 발표했습니다.“대통령의 진단을 PCR로 확인한 후 예방 조치로 Regeneron의 다 클론 항체 칵테일 8g을 1 회 투여 받았습니다. . 그는 무사히 주입을 완료했습니다. 다 클론 항체 외에도 대통령은 아연, 비타민 D, 파 모티 딘 [Pepcid], 멜라토닌 및 매일 아스피린을 복용하고 있습니다.”

A: I want to speak fairly generally. I don’t think it’s fair to comment over the shoulder of whoever might be taking care of the president.
With that caveat, the best evidence for therapeutic effectiveness is dexamethasone, but that’s only used and only needed in people with severe illness. In the next category down would be remdesivir. The general feeling about remdesivir is it has a modest benefit in people with moderate illness. It seems to shorten duration of symptoms a little bit, they feel better more quickly. We sort of compare it to the effectiveness of oseltamivir (Tamiflu) for influenza—not a huge lifesaver, but it seems to reduce symptoms.
A : 상당히 일반적으로 말하고 싶습니다. 대통령을 돌봐 줄 사람의 어깨 너머로 논평하는 것은 공평하지 않다고 생각합니다.

이러한 경고와 함께 치료 효과에 대한 가장 좋은 증거는 덱사메타손이지만 이는 심각한 질병이있는 사람에게만 사용되며 필요합니다. 다음 카테고리에서 remdesivir가 될 것입니다. 렘 데시 비르에 대한 일반적인 느낌은 중등도의 질병을 가진 사람들에게 약간의 이점이 있다는 것입니다. 증상의 지속 시간을 조금 단축하는 것 같고, 더 빨리 기분이 좋아집니다. 우리는 그것을 인플루엔자에 대한 oseltamivir (Tamiflu)의 효과와 비교합니다. 이것은 엄청난 생명의 은인은 아니지만 증상을 줄이는 것 같습니다.



728x90
반응형

'NEOgram > Issue' 카테고리의 다른 글

공매도  (0) 2021.02.06
박셀바이오 2021-01-04 (월)  (0) 2021.01.04
2021 투자  (0) 2021.01.04
도쿄증권거래소  (0) 2020.10.01
KG그룹  (0) 2020.09.24
:
Posted by 패치#노트
2020. 10. 1. 14:23

도쿄증권거래소 NEOgram/Issue2020. 10. 1. 14:23

728x90
반응형

https://www.hankyung.com/finance/article/2020100173877

[속보] 도쿄증권거래소, 전종목 거래정지…"복구 미정"

[속보] 도쿄증권거래소, 전종목 거래정지…"복구 미정", 김하나 기자, 뉴스

www.hankyung.com

거래정지라니... 일본이...

728x90
반응형

'NEOgram > Issue' 카테고리의 다른 글

공매도  (0) 2021.02.06
박셀바이오 2021-01-04 (월)  (0) 2021.01.04
2021 투자  (0) 2021.01.04
How might President Donald Trump fare with COVID-19?  (0) 2020.10.03
KG그룹  (0) 2020.09.24
:
Posted by 패치#노트
2020. 9. 24. 07:48

KG그룹 NEOgram/Issue2020. 9. 24. 07:48

728x90
반응형

http://www.topdaily.kr/news/articleView.html?idxno=73836

공시대상 된 KG그룹, 'KG제로인' 눈에 띄네 - 톱데일리

톱데일리 김성화 기자 = 공시대상 기업집단에 포함됨에 따라 모습이 드러난 KG그룹 지배구조에서 주목할 기업은 KG제로인이다.지난 31일 공정거래위원회는 ‘공시대상기업집단 주식소유현황’��

www.topdaily.kr

728x90
반응형

'NEOgram > Issue' 카테고리의 다른 글

공매도  (0) 2021.02.06
박셀바이오 2021-01-04 (월)  (0) 2021.01.04
2021 투자  (0) 2021.01.04
How might President Donald Trump fare with COVID-19?  (0) 2020.10.03
도쿄증권거래소  (0) 2020.10.01
:
Posted by 패치#노트