import numpy as np
type(np.array) = ndarray = n-dimensional array
np.zeros((2, 2)) : 2x2 matrix, all elements = 0
np.ones((2, 2)) : 2x2 matrix, all elements = 1
np.full((2, 2), 1.2) : 2x2 matrix, all elements = 1.2
np.eye(3) : 3x3 identity matrix
np.tri(3) : 3x3 matrix, filled with 1 in triangle shape.
np.empty((3, 3)) : 빠르게 배열생성 but 초기화없이 메모리상의 아무 값이나 들어감
np.zeros_like(a) : a 배열과 같은 모양으로 zeros array를 만들어 달라
np.ones_like(a)
np.full_like(a, 5)
np.arange(start, end, step)
np.linspace(0, 1, 5) : 0 부터 1사이를 균둥하게 5 등분
np.logspace(0, 1, 5) : log 값으로 균등하게
np.random.random((3, 3)) : 랜덤값으로 3x3 matrix 생성
np.random.randint(0, 10, (3, 3)) : 0에서 10 사이 값으로
np.random.normal(0, 10, (3, 3)) : 정규분포값
np.random.rand(3, 3) : 균등분포값 3x3 matrix
np.random.randn(3, 3) : 표준정규분포값 3x3 matrix
np.eye(3, dtype=int), int로 된 matrix, int 대신 float, bool 등등 여러가지 사용가능
date = np.array('2020-01-01', dtype=np.datetime64)
-> array('2020-01-01', dtype='datetime64[D]')
date + np.arange(12)
-> array(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04',
'2020-01-05', '2020-01-06', '2020-01-07', '2020-01-08',
'2020-01-09', '2020-01-10', '2020-01-11', '2020-01-12'],
dtype='datetime64[D]')
def array_info(array):
print(array)
print('ndim: ', array.ndim) # dimension
print('shape: ', array.shape)
print('dtype: ', array.dtype)
print('size: ', array.size) # total elements 갯수
print('itemsize: ', array.itemsize) # single element bytes
print('nbytes: ', array.nbytes) # total elements bytes
print('strides: ', array.strides) # 다음 차원으로 넘어가기 위해 필요한 bytes
array_info(a2)
->
[[1 2 3]
[4 5 6]
[7 8 9]]
ndim: 2
shape: (3, 3)
dtype: int64
size: 9
itemsize: 8
nbytes: 72
strides: (24, 8)
-------boolean indexing------
a1 = [7, 2, 3, 4, 5]
b1 = [False, True, True, False, True]
print(a1[b1])
-> [2 3 5] # true 만 가져옴
np.insert(array, index, number) : 지정 위치(index)에 지정 값(number) 삽입, 원본 array 변경 X
np.insert(a2, 0, 100, axis=1) : 2차원이상은 값을 입력 할 axis 지정
np.delete(a1, 2)
np.delete(a2, 1, axis=1)