반응형

sort(): 행렬을 정렬

- np.sort(): 정렬된 행렬을 반환

- ndarray.sort(): 행렬을 정렬 inplace

 

argsort(): 정렬된 행렬의 인덱스를 반환

 

test = np.array([3, 1, 9, 5])
print('원본 행렬:', test)

# np.sort()로 정렬
sort_test1 = np.sort(test)
print('np.sort() 결과: ', sort_test1)
print('np.sort() 수행 후 원본', test)

# ndarray.sort()로 정렬
sort_test2 = test.sort()
print('ndarray.sort() 결과: ', sort_test2)
print('ndarray.sort() 수행 후 원본', test)

# 내림차순 정렬
sort_test3 = np.sort(test)[::-1]
print('내림차순으로 정렬: ', sort_test3)

# argsort()로 정렬
sort_test4 = np.argsort(test)
print(sort_test4)

 

2차원 행렬의 정렬

- 작성예정

반응형
반응형

1. 특정한 데이터만 추출

  원하는 위치의 인덱스 값을 지정하면 해당 위치의 데이터가 반환된다.


# 1에서 부터 9 까지의 1차원 ndarray 생성 
array1 = np.arange(start=1, stop=10)
print('array1:',array1)
# index는 0 부터 시작하므로 array1[2]는 3번째 index 위치의 데이터 값을 의미
value = array1[2]
print('value:',value)
print(type(value))

 

2. 슬라이싱(Slicing)

  슬라이싱은 연속된 인덱스상의 ndarray를 추출하는 방식


array1 = np.arange(start=1, stop=10)
array3 = array1[0:3]
print(array3)
print(type(array3))

array1d = np.arange(start=1, stop=10)
array2d = array1d.reshape(3,3)
print('array2d:\n',array2d)

# ':' 기호 앞에 시작 인덱스를 생략하면 자동으로 맨 처음 인덱스인 0으로 간주
# ':' 기호 뒤에 종료 인덱스를 생략하면 자동으로 맨 마지막 인덱스로 간주
# ':' 기호 앞/뒤에 시작/종료 인덱스를 생략하면 자동으로 처음/맨 마지막 인덱스로 간주
print('array2d[0:2, 0:2] \n', array2d[0:2, 0:2])
print('array2d[1:3, 0:3] \n', array2d[1:3, 0:3])
print('array2d[1:3, :] \n', array2d[1:3, :])
print('array2d[:, :] \n', array2d[:, :])
print('array2d[:2, 1:] \n', array2d[:2, 1:])
print('array2d[:2, 0] \n', array2d[:2, 0])

 

3. 팬시 인덱싱(Fancy Indexing)

  일정한 인덱싱 집합을 리스트 또는 ndarray 형태로 지정해 해당 위치에 있는 데이터의 ndarray를 반환된다.


array1d = np.arange(start=1, stop=10)
array2d = array1d.reshape(3,3)
print("array2d => \n",array2d)


arraytt = array2d[[0,1],]
print("array2d[[0,1]] => \n",arraytt.tolist())

array3 = array2d[[0,1], 2]
print('array2d[[0,1], 2] => ',array3.tolist())


array4 = array2d[[0,1], 0:2]
print('array2d[[0,1], 0:2] =>\n',array4)

array5 = array2d[[0,1]]
print('array2d[[0,1]] => ',array5.tolist())
"""
"""
[[1,2],[4,5]]

 

4. 불린 인덱싱(Boolean Indexing)

  특정 조건에 해당하는지 여부인 True/False 값 인덱싱 집합을 기반으로 True 에 해당하는 인덱스 위치에 있는

  데이터의 ndarray를 반환한다.


array1d = np.arange(start=1, stop=10)
# [ ] 안에 array1d > 5 Boolean indexing을 적용 
array3 = array1d[array1d > 5]
print('array1d > 5 불린 인덱싱 결과 값 :', array3)

반응형
반응형

넘파이

- 파이썬에서 선형대수 기반의 프로그램을 쉽게 만들 수 있도록 지우너하는 대표적인 패키지

- 루프를 사용하지 않고 대량 데이터의 배열 연산을 가능하게 하므로 빠른 배열 연산 속도를 보장

- 배열 기반의 연산 및 다영한 데이터 핸들링 기능 제공

 

- NumPy의 자료형

dtype 접두사설명사용
b 불리언 b (참 혹은 거짓)
i 정수 i8 (64비트)
u 부호 없는 정수 u8 (64비트)
f 부동소수점 f8 (64비트)
c 복소 부동소수점 c16 (128비트)
O 객체 0 (객체에 대한 포인터)
S 바이트 문자열 S24 (24 글자)
U 유니코드 문자열 U24 (24 유니코드 글자)

 

 

 

사용 방법

import numpy as np  # np를 약어로 사용하는것은 개발자간의 암묵적인 사항이다.

 

넘파이의 기본 데이터타입

ndarray

- 다차원 배열 생성 및 다양한 연산 가능

- np.array(DataFrame): ndarray 반환

- shape변수: ndarray의 행, 열 반환

- ndim변수: ndarray의 차원 반환

- 데이터 타입: 숫자형, 문자열, 불(서로 다른 데이터 타입 사용시 형변환이 일어난다)

 

- 생성하기: arange(), zeros(), ones()

- 차원변경: reshape(행, 열)  # 크기를 맞추지 않으면 오류가 난다 ex) array의 길이 10 -> np.reshape(2, 5) 가능                                                                                                                              np.reshape(3, 4) 불가

 

 

- 인덱싱: 다음에 업로드하겠습니다.

반응형

+ Recent posts