Numpy개요. Numpy import하기. nd array 생성. array에서의 데이터 타입

목록


1. Numpy 개요

1-1. Numpy이란?

Numpy: 수학, 과학 계산용 패키지


1-2. 별칭 - np

1
import numpy as np

1-3. array (배열)

배열: 여러 값들의 그룹


< 1차원 배열 >


1_array
numpy.array([1, 2, 3, 4])

< 2차원 배열 >


2_array
numpy.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]])

< n차원 배열 > (nd array: n dimention array)

n_array


1-4. shape(차원) & axis(축)

  • shape은 차원의 수 를 확인

    (3, ) => 3 X 1의 배열
    (4,3) => 4 X 3의 배열
    (2,5,3) => 2 X 5 X 3의 배열

  • axis는 기준이 되는

    axis는 앞에서 부터 0, 1, 2…
    nd array의 축: axis 0, axis 1, axis 2, … axis n



2. Numpy import하기

1
import numpy
1
numpy
<module 'numpy' from 'D:\\Anaconda\\lib\\site-packages\\numpy\\__init__.py'>

2-1. 별칭 (alias) 지정하기 (항상 해주세요!)

1
import numpy as np
1
np
<module 'numpy' from 'D:\\Anaconda\\lib\\site-packages\\numpy\\__init__.py'>


3. ndarray 생성하기 – "np.array([…])"

1
arr = np.array([1,2,3,4], dtype=int)
1
arr # 주의: list와 다름
array([1, 2, 3, 4])

1
[1, 2, 3, 4]  # list
[1, 2, 3, 4]

1
type(arr)
numpy.ndarray


3-1. list로 부터 생성하기 – “np.array(list_name)”

1
mylist1 = [1, 2, 3, 4]
1
2
mylist2 = [[1, 2, 3, 4],
[5, 6, 7, 8]]

1
arr1 = np.array(mylist1)
1
arr1
array([1, 2, 3, 4])

1
arr2 = np.array(mylist2)
1
arr2
array([[1, 2, 3, 4],
       [5, 6, 7, 8]])


3-2. shape확인하기 – “array_name .shape”

1
arr1.shape
(4,)

1
arr2.shape
(2, 4)


4. array에서의 data type

array에서는 list와 다르게 1개의 단일 데이터 타입 만 허용 된다


4-1. list에서의 data type

1
mylist = [1, 3.14, '사과', '1234']
1
mylist
[1, 3.14, '사과', '1234']

1
mylist[0]
1

1
mylist[2]
'사과'


4-2. array에서의 data type

case 1. int와 float타입이 혼재된 경우

int와 float타입이 혼재된 경우 int(정수)가 float(실수)로 바꿔진다

1
arr = np.array([1, 2, 3, 3.14])
1
arr  # 정수가 실수로 바꿔진다
array([1.  , 2.  , 3.  , 3.14])

case 2. int와 float 타입이 혼재되었으나, dtype을 지정한 경우

int와 float 타입이 혼재되었으나, dtype가 int로 지정된 경우, float의 앞에 정수 부분만 보류된다

1
arr = np.array([1, 2, 3, 3.14], dtype = int)
1
arr
array([1, 2, 3, 3])

case 3. int / float 와 str 타입이 혼재된 경우

int / float 와 float타입이 혼재된 경우 int(정수)가 str(문자열)로 바꿔진다

1
arr = np.array([1, 3.14, '사과', '1234'])
1
arr
array(['1', '3.14', '사과', '1234'], dtype='<U32')

1
arr[0] + arr[1]  #str로 되어버려서 숫자의 사칙 연산이 안됨
'13.14'

case 4. int와 str 타입이 혼재되어 있고 dtype이 int로 지정한 경우

(1) 문자내용인 str이 존재한 경우 error 발생

1
arr = np.array([1, 3.14, '사과', '1234', '5.8'], dtype = int)
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-50-88e75a912236> in <module>
----> 1 arr = np.array([1, 3.14, '사과', '1234', '5.8'], dtype = int)


ValueError: invalid literal for int() with base 10: '사과'

(2) 실수(float)내용인 str이 존재한 경우도 error발생

1
arr = np.array([1, 3.14, '1234', '5.8'], dtype = int)
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-52-98017763e514> in <module>
----> 1 arr = np.array([1, 3.14, '1234', '5.8'], dtype = int)


ValueError: invalid literal for int() with base 10: '5.8'

(3) 정수(int)내용인 str만 존재한 경우 해당 str이 자동으로 int로 바꿔짐

1
arr = np.array([1, 3.14, '1234'], dtype = int)
1
arr
array([   1,    3, 1234])