SiLaure's Data

[Numpy] 02. Array 만들어보기 본문

Records of/Learning

[Numpy] 02. Array 만들어보기

data_soin 2021. 7. 23. 16:36

- 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])

 

 

 

Comments