새벽을 밝히는 붉은 달

2021.03.15 오늘의 기록 본문

Developer/Record

2021.03.15 오늘의 기록

자윰 2021. 3. 15. 22:15

<파이썬 라이브러리를 활용한 데이터 분석>

  • ndarray는 같은 종류의 데이터를 담을 수 있는 포괄적인 다차원 배열이다
  • ndarray의 모든 원소는 같은 자료형이어야만 한다
  • 모든 배열은 각 차원의 크기를 알려주는 shape라는 튜플을 가지고 있다.

  • 모든 배열은 배열에 저장된 자료형을 알려주는 dtype이라는 객체를 가지고 있다.

  • array 함수를 이용하면 순차적인 객체를 받아 넘겨받은 데이터가 들어있는 새로운 NumPy 배열을 생성한다

  • 명시적으로 지정하지 않는 한 np.array는 생성될 때 적절한 자료형을 추정한 후, 이를 dtype 객체에 저장한다.
  • zeros와 ones는 주어진 길이나 모양에 각각 0과 1이 들어있는 배열을 생성한다.
  • empty 함수는 초기화되지 않은 배열을 생성한다. 
  • arange 함수는 range 함수의 배열 버전이다.
  • 배열 생성 함수
array 입력 데이터를 ndarray로 변화하며 dtype이 명시되지 않은 경우에는 자료형을 추론하여 저장한다. 기본적으로 입력 데이터는 복사된다.
asarray 입력 데이터를 ndarray로 변환하지만 입력 데이터가 이미 ndarray일 경우, 복사가 되지 않는다.
arange 내장 range 함수와 유사하지만 리스트 대신 ndarray를 반환한다
ones, ones_like 주어진 dtype과 주어진 모양을 가지는 배열을 생성하고 내용을 모두 1로 초기화한다. ones_like는 주어진 배열과 동일한 모양과 dtype을 가지는 배열을 새로 생성하여 내용을 모두 1로 초기화한다
zeros, zeros_like ones, ones_like와 같지만 내용을 0으로 채운다
empty, empty_like 메모리를 할당하여 새로운 배열을 생성하지만 ones나 zeros처럼 값을 초기화하지는 않는다
eye, identity N x N 크기의 단위 행렬을 생성한다

 

  • ndarray의 astype 메서드를 사용해서 배열의 dtype을 다른 형으로 명시적 변경이 가능하다

  • 숫자 형식의 문자열을 담고 있는 배열이 있다면 astype을 사용하여 숫자로 변환할 수 있다

  • astype을 호출하면 새로운 dtype이 이전 dtype과 같아도 항상 새로운 배열을 생성(데이터를 복사)한다.
  • Numpy는 대용량 데이터 처리를 염두에 두고 설계되었기 때문에 데이터 복사가 되지 않고 뷰에 대한 변경은 그대로 원본 배열에 반영한다. -> 만약 뷰 대신 ndarray 슬라이스의 복사본을 얻고 싶다면 arr[5:8].copy()를 사용해서 명시적으로 배열을 복사한다

numpy와 python의 slice가 다르게 동작함을 알 수 있다

  • 다차원 배열에서 마지막 색인을 생략하면 반환되는 객체는 상위 차원의 데이터를 포함하고 있는 한 차원 낮은 ndarray가 된다
  • 배열에 불리언 색인을 이용해서 데이터를 선택하면 반환되는 배열의 내용이 바뀌지 않더라도 항상 데이터 복사가 이루어진다
  • 파이썬 예약어인 and와 or은 불리언 배열에서 사용할 수 없다.
  • 단항 유니버셜 함수
abs, fabs 각 원소(정수, 실수, 복소수)의 절대값을 구한다.복소수가 아닌 경우에는 빠른 연산을 위해 fabs를 사용한다.
sqrt 각 원소의 제곱근을 계산한다. arr ** 0.5와 동일하다.
square 각 원소의 제곱을 계산한다.
Exp 각 원소에서 지수 e^x를 계산한다
Log,log10, log2, log1p 각각 자연 록, 로그 10, 로그 2, 로그(1+x)
sign 각 원소의 부호를 계산한다. 1(양수), 0(영), -1(음수)
ceil 각 원소의 소수자리를 올린다 . 각 원소의 값보다 같거나큰 정수 중 가장 작은 정수를 반환한다.
floor 각 원소의 소수자리를 내린다. 각 원소의 값보다 작거나 같은 정수 중 가장 작은 수를 반환한다.
rint 각 원소의 소수자리를 반올림한다. dtype은 유지된다.
modf 각 원소의 몫과 나머지를 각각의 배열로 반환한다.
isnan 각각의 원소가 숫자인지 아닌지를(NaN, Not a Number) 나타내는 불리언 배열을 반환한다.
isfinite, isinf 배열의 각 원소가 유한한지(non-inf, non-Nan), 무한한지 나타내는 불리언 배열을 반환한다.
cos, cosh, sin, sinh, tan, tanh 일반 삼각 함수와 쌍곡삼각 함수
arccos, arccosh, arcsin, arcsinh, arctan, arctanh 역삼각 함수
logical_not 각 원소의 논리 부정(not) 값을 계산한다. -arr과 동일하다.

이항 유니버셜 함수

add 두 배열에서 같은 위치의 원소끼리 더한다
subtract 첫 번째 배열의 원소에서 두 번째 배열의 원소를 뺀다
multiply 배열의 원소끼리 곱한다
divide, floor_divide 첫 번째 배열의 원소에서 두 번째 배열의 원소를 나눈다. floor_divide는 몫만 취한다.
power 첫 번째 배열의 원소에 두 번째 배열의 원소만큼 제곱한다.
maximum, fmax 두 원소 중 큰 값을 반환한다. fmax는 NaN을 무시한다.
minimum, fmin 각 배열의 두 원소 중 작은 값을 반환한다. fmin은 NaN을 무시한다.
mod 첫 번째 배열의 원소에 두 번째 배열의 원소를 나눈 나머지를 구한다.
copysign 첫 번째 배열 원소의 기호를 두 번째 배열 원소의 기호로 바꾼다.
greater, greater_equal, less, less_equal, equal, not_equal 각각 두 원소 간의 >, >=, <, <=, ==, != 비교연산 결과를 불리언 배열로 반환한다.
logical_and, logical_or, logical_xor 각각 두 원소 간의 논리연산, &, |, ^ 결과를 반환한다.

'Developer > Record' 카테고리의 다른 글

2021.04.01 오늘의 기록  (0) 2021.04.02
2021.03.22 오늘의 기록  (0) 2021.03.22
2021.03.09 오늘의 기록  (0) 2021.03.10
2021.03.08 오늘의 기록  (0) 2021.03.09
2021.03.06 오늘의 기록  (0) 2021.03.07
Comments