import numpy as np
데이터 타입 확인 : print(arr.dtype)
array 생성시 데이터 타입 지정 가능 : array = np.array([1,2,3,4],dtype=’i4’)
4비트 integer로 지정
# 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
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차원으로 변경된다.
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]]
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]]
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])]
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]
값이 같은 인덱스를 모두 반환
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