일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- recursion
- shapeArea
- 파이썬 포렌식
- 파이썬머신러닝완벽가이드
- markdown
- Sequential Search
- baekjun
- matrixElementsSum
- adjacentElementsProduct
- Daily Commit
- centuryFromYear
- Numpy
- 2750
- All Longest Strings
- codesignal
- almostIncreasingSequence
- codesingal
- 2015 봄학기 알고리즘
- Python
- C++
- til
- 백준
- cpp
- flask
- 수 정렬하기
- 10953
- data_structure
- collections.deque
- 피보나치 수
- Counting cells in a blob
- Today
- Total
Introfor
numpy 기초 본문
python에서 행렬과 선형대수를 다루는 패키지로 Numpy가 있다. Numpy는 C언어로 구현된 파이썬 라이브러리로, 고성능 수치계산을 위해 제작되었다. 이것은 데이터 분석을 할 때 사용되는 라이브러리인 pandas와 matplotlib의 기반으로 사용되기도 한다.
np.array()
import numpy as np
# array() 함수 : 리스트 객체를 주로 인자로 받음. 서로 다른 데이터타입이 존재할 경우, 더 큰 데이터 타입으로 변환
# ndarray.shape : 차원과 크기를 튜플 형태로 나타냄
array1 = np.array([1, 2, 3])
print('array1 type: ', type(array1))
print('array1 array 형태:', array1.shape)
array2 = np.array([[1, 2, 3],
[2, 3, 4]])
print('array2 type: ', type(array2))
print('array2 array 형태:', array2.shape)
array3 = np.array([[1, 2, 3]])
print('array3 type: ', type(array3))
print('array3 array 형태', array3.shape)
# ndarray.ndim : array() 함수의 리스트 차원 값을 반환
print(f'array1: {array1.ndim}차원, array2: {array2.ndim}차원, array3: {array3.ndim}차원')
array1 type: <class 'numpy.ndarray'>
array1 array 형태: (3,)
array2 type: <class 'numpy.ndarray'>
array2 array 형태: (2, 3)
array3 type: <class 'numpy.ndarray'>
array3 array 형태 (1, 3)
array1: 1차원, array2: 2차원, array3: 2차원
np.array()는 list와 같은 다양한 형태의 인자를 값으로 받는다. ndarray.shape은 크기와 차원을 튜플 형태로 반환한다. nparray.ndim은 차원의 값 반환한다.
# array() 타입 자동형변환
list1 = [1, 2, 3]
print(type(list1))
array1 = np.array(list1)
print(type(array1))
print(array1, array1.dtype)
list2 = [1, 2, 'test']
array2 = np.array(list2)
print(array2, array2.dtype)
list3 = [1, 2, 3.0]
array3 = np.array(list3)
print(array3, array3.dtype)
# array() 타입 강제형변환
array_int = np.array([1, 2, 3])
array_float = array_int.astype('float64')
print(array_float, array_float.dtype)
array_int1 = array_float.astype('int32')
print(array_int1, array_int1.dtype)
array_float1 = np.array([1.1, 2.1, 3.1])
array_int2 = array_float1.astype('int32')
print(array_int2, array_int2.dtype)
<class 'list'>
<class 'numpy.ndarray'>
[1 2 3] int32
['1' '2' 'test'] <U11
[1. 2. 3.] float64
[1. 2. 3.] float64
[1 2 3] int32
[1 2 3] int32
ndarray내에 데이터값은 number value, string value, bool value 등이 모두 사용할 수 있다.
숫자형 : int형(8bit, 16bit, 32bit), unsigned int형(8bit, 16bit, 32bit), float형(16bit, 32bit, 64bit, 128bit)
ndarray내의 데이터 타입은 모두 하나로 동일해야 하므로 하나의 다른 값이 존재하면 그 타입보다 상위 데이터 타입으로 자동형 변환한다.
강제형 변환을 하기 위해서 astype()을 사용한다. 데이터 처리에 있어서 많은 양의 데이터를 ndarray로 만들 때 많은 메모리가 사용되는데, 메모리를 더 절약하기 위해 사용한다.
np.arange(), np.zeros(), np.ones()
sequence_array = np.arange(10, 0, -1)
print(sequence_array)
print(sequence_array.dtype, sequence_array.shape)
zero_array = np.zeros((3,2), dtype='int32')
print(zero_array)
print(zero_array.dtype, zero_array.shape)
# dtype 지정하지 않을 시 초기값으로 float64로 지정
one_array = np.ones((3, 2))
print(one_array)
print(one_array.dtype, one_array.shape)
[10 9 8 7 6 5 4 3 2 1]
int32 (10,)
[[0 0]
[0 0]
[0 0]]
int32 (3, 2)
[[1. 1.]
[1. 1.]
[1. 1.]]
float64 (3, 2)
np.arange() : 파이썬 표준 함수에 있는 range()와 쓰임이 비슷하다.
np.zeros() : 튜플 형태의 shape을 인자로 받으면 모든 값을 0으로 채운 ndarrray를 반환한다.
np.ones() : 튜플 형태의 shape을 인자로 받으면 모든 값을 1로 채운 ndarray를 반환한다. dtype에 대해 정의하지 않으면 default로 float64형의 데이터 타입이 적용된다.
'Doing > Python' 카테고리의 다른 글
[data_structure] Queue (0) | 2020.07.21 |
---|---|
[Algoritm] Stack (0) | 2020.07.20 |
문자열 앞 0으로 채우기 (0) | 2020.07.05 |
Python Flask (0) | 2019.12.23 |
How to release python module (0) | 2019.12.19 |