Python +머신러닝
[Python] - Numpy 기초정리 2
dev_SiWoo
2020. 8. 27. 14:24
Numpy Basic 2¶
zeros & ones
In [83]:
import numpy as np
- zeros % ones
In [84]:
zeros = np.zeros([3,3])
zeros
Out[84]:
In [85]:
ones = np.ones([10])
ones
Out[85]:
In [86]:
ones2 = np.ones([10,5])
ones2
Out[86]:
- array 연산
In [87]:
ones2*5
Out[87]:
- arange (start, stop, step) : 시작값부터 end값까지 step 단위로 숫자를 생성하여 array 형태로 반환
In [88]:
arr = np.arange(5) # start의 디폴트:0, step 의 디폴트 :1
print(arr)
arr2 = np.arange(0,5,2)
print(arr2)
In [89]:
nums = [1,2,3,4,[1,2,3]]
type(arr)
Out[89]:
- Ravel : array의 차원을 1차원으로 바꿔줌, reshape(-1)과 동일한기능
In [90]:
r_ones = ones.ravel()
print(r_ones.shape)
r_ones
Out[90]:
- np.expand_dims()
- array안의 값은 유지하되 차원의 수를 늘리고 싶을 때 사용
In [91]:
print('---------ones------------')
print(ones, ones.shape)
ones2 = np.expand_dims(ones, axis=0)
print(ones2, ones2.shape)
ones3 = np.expand_dims(ones, axis=1)
print(ones3, ones3.shape)
In [92]:
arr = np.array([[1,2,3],[1,2,3]])
print(arr, arr.shape)
print('\n------arr2------\n')
arr2 = np.expand_dims(arr, axis=0)
print(arr2, arr2.shape)
print('\n------arr3------\n')
arr3 = np.expand_dims(arr, axis=1)
print(arr3, arr3.shape)
print('\n------arr4------\n')
arr4 = np.expand_dims(arr, axis=2)
print(arr4, arr4.shape)
numpy 배열과 python 리스트의 차이¶
- numpy 배열과 python 리스트는 유사하게색인과 슬라이싱을 동작시킬 수 있다.
- 다만 numpy 배열은 Broadcasting 개념이 적용되어 for문을 사용하지 않아도 되는 편리함을 얻을 수 있다.
In [93]:
#numpy배열
arr = np.arange(10)
print(arr)
print(arr[5:8])
print('---------------------------------')
#list
li = list(range(10))
print(li)
print(li[5:8])
In [94]:
#broadcasting :값이 한번에 다중 할당됨
arr[5:8] = 100
print(arr)
In [95]:
#list : 값이 한번에 다중할당 되지 않음
li[5:8] =100 # error
print(li)