[TIL] Numpy, Numpy array, 자주 사용하는 method 모음

하나·2022년 2월 20일
0

TIL

목록 보기
5/14
post-thumbnail

1. Numpy 사용

import numpy as np

  • 버전 확인 : print(np.version)

2. Numpy array

  • 1차원 : Vector
  • 2차원 : Matrix
  • 3차원: Tensor

Array 에 Indexing/Slicing/Iterating 가능

  • 타입 확인 : print(type(arr))
  • 차원 확인 : print(arr.ndim)
  • 더 높은 차원 array : arr = np.array([1,2,3,4],ndim=5)
    • ndim 지정 가능

데이터 타입 확인 : print(arr.dtype)
array 생성시 데이터 타입 지정 가능 : array = np.array([1,2,3,4],dtype=’i4’)
4비트 integer로 지정

reshape() : 차원 변환 가능

# 1차원에서 3차원으로 변환
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])

newarr = arr.reshape(2, 3, 2)

print(newarr)

[[[ 1  2]
  [ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]
  [11 12]]]

Flattening : reshape(-1) 을 사용해 다차원의 array 를 1차원으로 변경 가능

# Flattening
arr = np.array([[1, 2, 3], [4, 5, 6]])

newarr = arr.reshape(-1)

print(newarr)

[1 2 3 4 5 6]

reshape(-1) 과 reshape(1, 어쩌구) 는 결과값이 다르다

arr = np.array([[[1, 2, 3], [4, 5, 6]]])

newarr = arr.reshape(1, 6)

print(newarr)

[[1 2 3 4 5 6]]

reshape(-1) 은 input 이 몇차원이든 1차원을 반환하지만 위 코드와 같이 reshape(1, 어쩌구) 를 하면 3차원은 2차원으로 변경된다.

Join : concatenate() 사용해서 여러개의 배열을 하나로 연결 가능

  • concatenate, axis 가 0인 경우 : 수직 방향으로 연결
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])

arr = np.concatenate((arr1, arr2), axis=0)

print(arr)

[[1 2]
 [3 4]
 [5 6]
 [7 8]]
  • concatenate, axis 가 1인 경우 : 수평 방향으로 연결
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])

arr = np.concatenate((arr1, arr2), axis=1)

print(arr)

[[1 2 5 6]
 [3 4 7 8]]

Split : array_split() 사용하면 하나의 배열을 여러개로 쪼갤 수 있음

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 3)

print(newarr)

[array([1, 2]), array([3, 4]), array([5, 6])]

searchsorted(): array 에서 이진 탐색 수행하고 검색 순서를 유지하기 위해 특정 값이 삽입될 인덱스를 반환

import numpy as np

arr = np.array([6, 7, 8, 9])

x = np.searchsorted(arr, 7)

print(x)

1

Search From the Right Side

side 에 right 을 주면 오른쪽에서 부터의 인덱스 값을 반환한다.

import numpy as np

arr = np.array([6, 7, 8, 9])

x = np.searchsorted(arr, 7, side='right')

print(x)

2

Multiple Values

여러 값들에도 적용 가능하다.

import numpy as np

arr = np.array([1, 3, 5, 7])

x = np.searchsorted(arr, [2, 4, 6])

print(x)

[1 2 3]

where()

값이 같은 인덱스를 모두 반환

arr = np.array([1, 2, 3, 4, 5, 4, 4])

x = np.where(arr == 4)

print(x)

(array([3, 5, 6]),)

식에 만족하는 값의 인덱스를 모두 반환

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

x = np.where(arr%2 == 0)

print(x)

(array([1, 3, 5, 7]),)

참고 : www.w3schools.com

0개의 댓글