728x90
난수의 발생
  • 이전 배열을 생성하는 함수 중 random.rand()/random.randint() 함수가 바로 난수를 생성하는 함수이다.

2020/06/10 - [파이썬\python/numpy] - 1. 기초 / 특징 /배열 생성 /전치 연산

 

1. 기초 / 특징 /배열생성 /전치연산

http://www.numpy.org NumPy Powerful N-dimensional arrays Fast and versatile, the NumPy vectorization, indexing, and broadcasting concepts are the de-facto standards of array computing today. Numeric..

chuyinchule.tistory.com


시드 설정하기 
  • 난수를 발생시킨 후 발생시킨 난수를 고정시켜주는 것을 시드(seed)라고 한다.

 np.random.seed(0)을 random.seed(0) 사용하여 난수를 고정시켜준다.


데이터 순서 교환 shuffle()
  • shuffle() : 데이터를 무작위로 섞어주는 함수 

 


데이터 샘플링 choice()
  • numpy.random.choice(a, size=None, replace=True, p=None)


데이터 카운팅 unique(), bincount()
  • unique() : 중복된 값을 제거하고 보여준다.
  • bincount() : 발생하지 않은 사건에 대해서도 카운트를 해준다.

 

 

 

728x90
728x90

Numpy 브로드캐스팅(BroadCasting)

1.  브로드 캐스팅(BroadCasting)이란?
  • Numpy 배열에서 차원의 크기가 서로 다른 배열에서도 산술 연산을 가능하게 해주는 것

728x90
728x90

배열 병합(연결) 하기 

1. hstack() / vstack()
  • hstack([배열1, 배열2]) : 배열1과 배열2의 행이 동일한 경우 배열1과 배열2를 이어서 병합해준다.
  • vstack([배열1, 배열2]) : 배열1과 배열2의 열이 동일한 경우 배열1과 배열2를 이어서 병합해준다.


2. stack() / dstack()
  • stack([배열1, 배열2, axis=축]): 배열1과 배열 2를 이용하여 새로운 축으로  배열 1과 2를 이어 붙이는 함수 
  • dstack([배열1, 배열2], axis=축): stack()과 동일한 결과를 보여준다.


 

3. tile()
  • tile(배열, 반복횟수) : tile()을 이용하여 배열을 반복 횟수만큼 이어 붙이는 함수
  • tile()함수는 stack()함수와 달리 차원이 변하지 않음

 

728x90
728x90

Numpy의 자료형(Data type)

1. 자료형의 종류

- i : int 부호가 있는 정수, singed integer ex) i8 : 8비트의 정수만 사용

- u : 부호가 없는 정수(양의 정수), (unsigned integer)

- f : 실수 float 

- c : 복소수 complex 

- b : bool 불리언(True , False)

- O : 객체 Object

- S : 바이트 문자열 (byte)string ex) S24 : 영문자 24글자, 한글 12글자

- U : 유니코드 Unicode

 

  • 배열내 서로 다른 자료형이 동시에 존재하는 경우, 자동으로 동일한 자료형으로 통합된다


2. dtype()
  • dtype() : 데이터 타입을 변경하는 함수 

728x90
728x90

우선 배열을 사용하기 위해서 numpy 모듈을 import 해준다.

 

배열의 인덱싱
  • 배열의 인덱싱은 리스트와 같이 대괄호( [ ] )를 사용한다.

기본 인덱싱

 


다차원 인덱싱

 

  • 다차원 인덱싱에서는 : (콜론)을 기준으로 행과 열을 분리하여 인덱싱 한다.


팬시 인덱싱(Fancy Indexing)

 

  • 시 인덱싱은 정수나 불린(Boolean) 값을 가지는 다른 Numpy 배열로 배열을 인덱싱할 수 있는 기능을 의미한다.
  • Boolean 값을 가진 배열을 사용하여 직관적으로 인덱싱 가능

 

  • 연습문제


배열의 슬라이싱

 

  • 리스트와 마찬가지로 슬라이싱 또한 가능하다
  • 다차원 배열의 원소 중 복수 개를 접근하려면 일반적인 파이썬 슬라이싱(slicing)과 comma(,)를 함께 사용

 

728x90
728x90

 

http://www.numpy.org 

 

NumPy

Powerful N-dimensional arrays Fast and versatile, the NumPy vectorization, indexing, and broadcasting concepts are the de-facto standards of array computing today. Numerical computing tools NumPy offers comprehensive mathematical functions, random number g

numpy.org

 

Numpy의 특징

  1. 백터 및 행렬 연산과 관련된 편리한 기능을 제공
  2. list와 거의 동일하지만 numpy배열의 특징을 가진다.
    • 모든 원소가 같은 자료형이어야 한다.
    • 원소의 개수를 바꿀 수 없다.
  3. 적은 메모리 사용으로 연산속도가 빠르다.
  4. 백터화 연산, 배열 인덱싱들 통한 질의가 가능하다 

파이썬에서는 기본적으로 배열(array) 자료형을 제공하지 않기 때문에 numpy를 이용하여 배열(array)을 사용할 수 있다

사용방법은 아래와 같으며 np라는 별칭으로 주로 쓰인다.

import numpy as np

배열 만들기

  • numpy에서 제공하는 array함수를 이용하여 배열을 만들 수 있다.
np.array([ ])

1차원 배열 만들기

 


백터화 연산 

 : 배열 객체는 배열의 각 원소에 대한 반복 연산을 하나의 명령어로 처리할 수 있게 지원

 


2차원 배열 만들기

 


3차원 배열 만들기

 


배열의 크기 변형 : reshape(m,n),  flatten(),  ravel()

 


배열 생성하기  arange([시작],끝,[간격]) / linspace(시작, 끝 , [개수]) /zeros(m,n) / ones(m,n) / empty(m,n)/

                               random.rand(개수) / random.randint([시작 ], 끝 ,[ size=(m,n))

 

 

1. arange([시작],끝,[간격])

 

2. linspace(시작, 끝, [개수])

 

3. zeros((m, n)) / ones((m,n))
  • 모든 데이터가 0 또는 1로만 이루어진 배열을 만들어내는 명령어
  • m행 n열의 데이터를 생성합니다.
  • 2차원 배열 이상을 만들려면 ((차수, m ,n )) 형태로 생성 (1차원은 (m,n))

 

4. np.ones_like() : 배열을 1로 바꿔주는 함수

5. empty(m,n)
  • 배열을 생성만 하고 특정한 값으로 초기화를 하지 않는다
  • empty 명령으로 생성된 배열에는 기존에 메모리에 저장되어 있던 값이 있으므로 배열의 원소의 값을 미리 알 수 없다.

 

 

 

 

 

6. random.rand(개수)/random.randint([시작 ,] 끝 [, size=(m,n))
  • random.rand()는 괄호안의 숫자의 개수에 따라 적합한 numpy배열로 0 이상 1 미만의 임의의 값을 출력
  • random.randint()는 함수명에서 알 수 있는 것처럼 지정한 값 사이의 정수를 랜덤으로 호출
  • 시작 값은 Default 값이 0이며, size 값은 Default값이 1 

 


전치연산 (Transpose) : .T

 

 

728x90

+ Recent posts