1. 루프는 느리다.
파이썬에서 배열 요소 하나하나에 접근하는 건 느리게 수행된다
위와 같이 for문으로 하나하나 접근할 때 느리게 적용된다고 한다
거기다가 만약 100만개가 되면??
매~우 느리다 대략 5.3초정도 걸린다
넘파이는 이런걸 미리 컴파일해서 시간이 무척 빠르다
big_array + 5 같이 넘파이 수행
2. 기본 연산
넘파이는 + - * / 와 같은 기본 연산을 수행한다. 각 요소마다 연산 수행!
아까 for문을 돌려 만드는 거 비해 훨씬 빠르다
3. 행렬간 연산
이건 x + y 와 같이 행렬간 연산도 가능하다
4. Broadcasting 브로드캐스팅
shpae이 다른 array 끼리 연산
5. 이번에는 하나가 아니라 일차원 배열이랑 더한다 이러면 각 열마다 똑같이 더해진다
2 6 9 는 1을 더해서
4 5 4 는 2를 더해서..
이런 느낌인 것
6. 이번에는 3,1 과 1,3 이 있을 때
차원을 맞출 수 있으니까
3 * 3으로 늘려서 계산을 할수 있다면 이렇게 만든다
퀴즈 1번이 답이지.
그림판에 그림은 차례대로 A B(늘린거) A+B결과
이렇게 하는거다!
7. 대용량 데이터를 다룰 때는 요약 통계가 필요하다
이때 x 는 [[0,1,2,3][4,5,6,7]] 이렇게 데이터가 나온다
np.sum을 하면 다 더해진다
np.min가장 작은 값을 찾으면 0이 출력
np.max 가장 큰 값 7
np.mean 평균을 출력
+
np.std(x)라고 표준편차도 구할 수 있다
8. sum 의 경우 axis에 따라 더할 수도 있다
그냥 sum을 했다면 모든 값을 단순 더하는데 axis = 0 또는axis = 1로 한다면 각 축에 맞게 더할 수도 있다
axis = 0은 세로였다 그럼 4 6 8 10처럼 세로로 더해진다
9. 마스킹 연산
x < 3과 같이 if연산을 수행한다!
True / false array를 인덱스처럼 넣게 되면 True인 값만 출력된다
주어진 daily_liar_data 배열은 양치기 소년이 100일동안 한 말을 정리한 배열입니다.
0은 거짓말을 한 날이고, 1은 거짓말을 하지 않은 날입니다.
양치기소년이 100일 중 거짓말을 총 몇 번 했는지, 그 횟수를 세어 정확히 출력해주세요.
import numpy as np
daily_liar_data = [0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0]
# 양치기 소년이 거짓말을 몇 번 했는지 구하여 출력해주세요.
def main() :
# 해당하는 코드 작성
daily = np.array(daily_liar_data)
cntlist = daily[daily>0]
#print(cntlist)
cnt = 100 - np.sum(cntlist)
print(cnt)
if __name__ == "__main__" :
main()
리스트의 개수를 알 수 있는 함수는 안 배운거같은데ㅜㅜ
그래서 그냥 1을 더해서 최종 100개에서 빼는 식으로
거짓말한 횟수를 셌다
주의점
ㄱ. 그냥 daily_liar_data로 numpy계산을 할 수 없다. daily = np.array(daily_liar_data)처럼 numpy array class객체로 만들어야 연산가능하다
'파이썬 > NIPA 데이터분석 강의' 카테고리의 다른 글
NIPA 데이터분석 첫번째 활용선택 : 04 Matplotlib 1 - line plot 옵션과 scatter bar hist (0) | 2020.09.30 |
---|---|
NIPA 데이터분석 첫번째 활용선택 : 03 Pandas 심화 -b pivot 피리부는사나이 (0) | 2020.09.30 |
NIPA 데이터분석 첫번째 활용선택 : 03 Pandas 심화 -a apply group (0) | 2020.09.30 |
NIPA 데이터분석 첫번째 활용선택 : 02 Pandas 기본 알아보기 (0) | 2020.09.29 |
NIPA 데이터분석 첫번째 활용선택 : NumPy 사용해보기 (0) | 2020.09.29 |
NIPA 온라인 데이터분석 체험 특강 : 04 그래프까지 (0) | 2020.09.26 |
NIPA 온라인 데이터분석 체험 특강 : 03 입력피처, 데이터셋나누기, kendas맛보기까지 (0) | 2020.09.26 |
NIPA 온라인 데이터분석 체험 특강 : 02 주식데이터 기초 / pandas (0) | 2020.09.25 |