본문 바로가기

AI/[TEAMLAB]Numpy 사용법10

[TEAMLAB] 3 - 10. numpy data I/O 이번 시간이 numpy 마지막 시간으로, numpy에서 data를 입출력하는 법을 알아보도록 하겠다. 데이터들은 보통 csv파일, 텍스트 파일이기 때문에 위와 같이 loadtxt 함수로 호출할 수 있다. 불러오면 기본적으로는 float type이고, astype을 이용해서 int로 바꾼 후에 array에 넣을 수 있다. savetxt는 다시 csv 형태로 저장하고 저장하고 싶은 데이터 타입으로 저장할 수 있다. 데이터를 구분할 때의 기호인 delimiter를 ,로 지정했다. \t 등도 가능할 것이다. text를 load할 때에는 data type을 지정할 수 있다. 위의 예시처럼 문자열 타입도 가능하다. 별다른 명시가 없을 경우에는 float으로 불러오게 된다. 위와 같이 savetxt를 할 때에는 fm.. 2020. 1. 20.
[TEAMLAB] 3 - 9. numpy - boolean & fancy index boolean index는 numpy 배열에서 특정 조건에 맞는 인덱스만 출력하는 것이다. A라는 큰 배열이 있었을 때 조건을 15보다 작은지로 두고, B의 타입을 np.int라고 두면 true인 것은 1로, false인 것은 0으로 출력하게 된다. 이번에는 fancy index에 대해 알아보도록 하겠다. fancy index는 numpy의 array를 index value로써 사용해서 값을 추출하는 방법이다. 위의 예에서 보면 b의 각 원소들이 마치 index처럼 사용되어 해당하는 a의 값을 가져오는 것을 볼 수 있다. take 함수도 같은 역할을 한다. 사실 a[b]의 방법보다 take의 방법이 한 눈에 보기 좋아서 더 낫다고 한다. matrix 형태의 데이터들도 fancy index가 가능하다. 위.. 2020. 1. 20.
[TEAMLAB] 3 - 8. numpy - comparisons 이번 시간에는 numpy에서 값들을 비교하는 방법에 대해 알아보도록 하겠다. numpy에서 any는 어느 하나라도 조건을 만족하면 true를 반환하고, all은 모두가 조건에 만족할 때 treu를 반환한다. 즉, any는 OR이고, all은 AND와 같다. 예를 보자면 위와 같이 0부터 9까지는 모두 0보다 크므로 false가 나온다. 일종의 broadcast인 셈이다. a > 5를 보자면 6, 7, 8, 9에 해당하는 값들만 true가 나온다. 배열 간의 크기가 같을 때는 element-wise 계산을 하게 된다. logical and는 두 조건을 and로 만족하고 있는지 알아본다. logical not은 주어진 것을 not으로 바꿔준다. logical or은 각 element별 하나라도 true가 있.. 2020. 1. 20.
[TEAMLAB] 3 - 7. numpy - array opeations 저번 시간에는 array 내부의 operation을 알아보았고, 이번 시간에는 numpy의 array 간의 operation에 대해 알아보도록 하겠다. array 간의 기본적인 사칙 연산은 위와 같이 간단하다. 덧셈과 뺄셈은 matrix 연산처럼 같은 위치에 있는 것끼리 연산하게 된다. matrix의 연산은 곱하는 행렬의 열 수와 곱해지는 행렬의 행 수가 같아야 했다. 그런데 곱셈은 array 간의 shape이 같을 때, 같은 위치에 있는 값들을 곱한다는 점에서 다르다. 위에서 말했던 덧셈, 뺄셈처럼 같은 위치끼리 연산되는 것을 element-wise라고 한다. 매트랩에서의 .*라는 연산과 같다. dot product는 우리가 원래 알고 있었던 행렬 곱셈 연산이다. 이것은 .dot()이라고 해야한다. T.. 2020. 1. 20.