Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 알고리즘 스터디
- NumPy
- 백준
- type hint
- javascript
- Algorithm
- Join
- 정보처리기사 c언어
- 프로그래머스
- 자료구조
- 데이터시각화
- queue
- aws jupyter notebook
- dataframe
- Stack
- 파이썬
- programmers
- 선그래프
- Matplotlib
- Selenium
- MySQL
- 노마드코딩
- String Method
- 알고리즘스터디
- pandas
- python
- 코딩테스트
- 알고리즘
- openCV
- 가상환경
Archives
- Today
- Total
조금씩 꾸준히 완성을 향해
[Numpy] 배열의 구조와 배열의 생성 본문
Numpy
Python의 고성능 과학 계산용 라이브러리
백터나 행렬같은 선형대수의 표현법을 코드로 처리
다차원 리스트나 크기가 큰 데이터 처리에 유리
특징
- 속도가 빠르고 메모리 사용이 효율적
- 반복문을 사용하지 않음 (연산할 때 병렬로 처리, 함수를 한 번에 많은 요소에 적용)
- 다양한 선형대수 관련 함수 제공
- C, C++, 포트란 등 다른 언어와 통합 사용 가능
Array and Tensor (배열과 텐서)
ndarray (넘파이 배열) : 넘파이에서 텐서 데이터를 다루는 객체
tensor (텐서) : 선행대수의 데이터 배열 (rank에 따라 이름이 다름)
RANK | NAME | EXAMPLE |
0 | 스칼라(scalar) | 7 |
1 | 백터(vactor) | [10, 10] |
2 | 행렬(matrix) | [[10, 10], [15, 15]] |
3 | 3차원 텐서(3-order tensor) | [[[1, 5, 9], [2, 6, 20]], [[3, 7, 11], [4, 8, 12]]] |
n | n차원 텐서(4-order tensor) |
Python LIST vs Numpy ARRAY
- 넘파이의 배열은 텐서 구조를 준수한다 -> 배열의 모든 구성 요소에 값이 존재해야 한다.
- 넘파이의 배열은 동적 타이핑을 지원하지 않는다 -> 리스트 안에서 하나의 데이터 타입만 사용
- 넘파이의 배열은 데이터를 메모리에 연속적으로 나열한다 -> 각 값의 메모리 크기가 동일, 검색이나 연산 속도가 파이썬의 리스트에 비해 훨씬 빠름)
배열의 생성
▶ np.array (array, datatype)
import numpy as np # numpy 라이브러리 import
# 리스트를 생성할 때 데이터타입 지정 (모든 요소를 하나의 타입으로 통일)
test_array = np.array([1, 4, 5, 8], float)
print(test_array)
# outpur: [1. 4. 5. 8.]
# 서로 다른 타입의 데이터를 넣고 타입지정을 하지 않으면 -> string으로 변환
test = np.array([1, '2', True, 4.3])
print(test)
['1' '2' 'True' '4.3']
# 텐서구조 준수 -> 배열의 모든 구성 요소에 값이 존재해야 함
test_list = [[1,4,5,8],[1,4,5]] # 요소 개수 불일치
np.array(test_list, float) # ValueError!!
test_list = [[1,4,5,8],[1,4,5,7]] # 요소 개수 일치
np.array(test_list, float)
# output: array([[1., 4., 5., 8.],
# [1., 4., 5., 7.]])
# float 지정시, 숫자가 들어있는 문자열 -> float 자동 형변환 실시
test_array = np.array([1, 4, 5, "8"], float)
print(test_array)
# output: [1. 4. 5. 8.]
print(type(test_array[3])) # '8'로 넣은 요소에 대한 데이터타입 확인
# output: <class 'numpy.float64'>
print(test_array.dtype) # 배열 전체의 데이터 타입 반환
# output: float64
'Python > Numpy & Pandas' 카테고리의 다른 글
[Numpy] 비교 연산(Comparison Operators) (0) | 2022.09.25 |
---|---|
[Numpy] 배열 연산(산술 연산, 내적 연산, Broadcasting) (0) | 2022.09.25 |
[Numpy] 배열의 구조 변경 (reshape, flatten, newaxis) (0) | 2022.09.23 |
[Numpy] 배열 초기화&특정배열 생성(zeros, ones, full, eye, tri, empty, _like) (0) | 2022.09.22 |
[Numpy] 배열의 구조와 정보 확인(shape, ndim, dtype, size, itemsize, nbytes, strides) (0) | 2022.09.22 |