SiLaure's Data
[Numpy] 02. Array 만들어보기 본문
- Numpy Array 만들기
1. np라는 이름으로 numpy library를 불러온다.
import numpy as np
2. Python list 선언한다.
data = [1, 2, 3, 4, 5]
# data, type(data)
3. Python 2차원 리스트(행렬) 선언한다.
data2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
4. Python list를 numpy array로 변환한다.
arr1 = np.array(data)
# 2번처럼 미리 Python list를 선언하는 대신 list를 안에서 선언하고 바로 np.array를 만들 수 있다.
np.array([1, 2, 3, 4, 5])
ndarray : numpy.ndarray(n-dimensional array)
numpy array를 vector로 인지하려고 다차원의 array를 지원하는 data type
- np.array(1, 2, 3, 4, 5) 는 함수에 parameter를 넘긴 꼴이기 때문에 에러가 발생한다.
- np.array((1, 2, 3, 4, 5)) 는 tuple을 np.array로 만든 것이기 때문에 okay
- numpy array를 만드는 방식의 대부분은 파이썬 리스트를 np.array로 변환하는 방식이다.
- np.array.shape은 np.array의 크기(행렬의 크기)를 알려준다.
arr1.shape
출력 : (5, )
e.g. 5 x 1 을 의미.
(5, 1)에서 1 생략
5. 2차원 list를 np.array로 만들어 준다.
arr2 = np.array(data2)
arr2, type(arr2)
출력 :
(array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]),
numpy.ndarray)
# arr2의 차원
print("arr2의 차원(ndim) : ", arr2.ndim)
# 2가 나오는데, 이는 vector가 행렬이 되었을 때를 나타낸다. 2차원.
# arr2의 행, 열의 크기
print("arr2의 shape(크기) : ", arr2.shape)
# arr2의 행 x 열 --원소 개수
print("arr2의 size : ", arr2.size)
# arr2의 원소의 타입. # int64 : integer + 64bits
print("arr2의 dtype : ", arr2.dtype)
# arr2의 원소의 사이즈(bytes) # 64bits = 8B
print("arr2의 itemsize : ", arr2.itemsize)
# itemsize * size # numpy array가 차지하는 메모리 공간.
print("arr2의 nbytes : ", arr2.nbytes)
출력 :
arr2의 차원(ndim) : 2
arr2의 shape(크기) : (3, 3)
arr2의 size : 9
arr2의 dtype : int32
arr2의 itemsize : 4
arr2의 nbytes : 36
- Array Initialization
- 원소가 0인 array를 생성하는 np.zeros()
- 원소가 1인 array를 생성하는 np.ones()
- 특정 범위의 원소를 가지는 np.arange()
numpy array를 초기값과 함께 생성하는 방법도 있다.
- 0이 5개 있는 array
np.zeros(5)
np.zeros(5).dtype
출력 :
array([0., 0., 0., 0., 0.])
dtype('float64')
- 0이 3x3인 array
np.zeros(3, 3) 으로 입력하면 (3, 3)을 parameter로 인식해서 에러가 발생한다.
tuple 형태로 넣어줘야 함
np.zeros((3, 3))
출력 :
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
- 1이 3개 있는 array
np.ones(3)
출력 : array([1., 1., 1.])
- 1이 2x2인 array
np.ones((2, 2))
출력 :
array([[1., 1.],
[1., 1.]])
- 0부터 9까지 숫자를 자동으로 생성하는 array
# python에서 생성할 경우
list(range(0,10))
np.array(list(range(0,10)))
arange를 사용하면 자동으로 만들어 준다.
np.arange(10)
출력 : array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
- 10부터 99까지 숫자를 자동으로 생성하는 arange()
python range 함수와 동일한데, np.array 생성까지 자동으로 해 준다.
np.arange(10,100)
출력 :
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])
'Records of > Learning' 카테고리의 다른 글
[Numpy] 05. Array Functions(함수) (0) | 2021.07.25 |
---|---|
[Numpy] 03. Array Operation(Broadcast, Universal Function) (0) | 2021.07.23 |
[Numpy] 01. Numpy란? (0) | 2021.07.23 |
[Python] 15-2. Python 데이터 입출력(I,O) (2) (0) | 2021.07.23 |
[Python] 15-. Python 데이터 입출력(I,O) (1) (0) | 2021.07.22 |