Numpy개요. Numpy import하기. nd array 생성. array에서의 데이터 타입
목록
1. Numpy 개요
1-1. Numpy이란?
Numpy: 수학, 과학 계산용 패키지
1-2. 별칭 - np
1-3. array (배열)
배열: 여러 값들의 그룹
< 1차원 배열 >
numpy.array([1, 2, 3, 4])
< 2차원 배열 >
numpy.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
< n차원 배열 > (nd array: n dimention 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하기
<module 'numpy' from 'D:\\Anaconda\\lib\\site-packages\\numpy\\__init__.py'>
2-1. 별칭 (alias) 지정하기 (항상 해주세요!)
<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)
|
array([1, 2, 3, 4])
[1, 2, 3, 4]
numpy.ndarray
3-1. list로 부터 생성하기 – “np.array(list_name)”
1 2
| mylist2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
|
1
| arr1 = np.array(mylist1)
|
array([1, 2, 3, 4])
1
| arr2 = np.array(mylist2)
|
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
3-2. shape확인하기 – “array_name .shape”
(4,)
(2, 4)
4. array에서의 data type
array에서는 list와 다르게 1개의 단일 데이터 타입 만 허용 된다
4-1. list에서의 data type
1
| mylist = [1, 3.14, '사과', '1234']
|
[1, 3.14, '사과', '1234']
1
'사과'
4-2. array에서의 data type
case 1. int와 float타입이 혼재된 경우
int와 float타입이 혼재된 경우 int(정수)가 float(실수)로 바꿔진다
1
| arr = np.array([1, 2, 3, 3.14])
|
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)
|
array([1, 2, 3, 3])
case 3. int / float 와 str 타입이 혼재된 경우
int / float 와 float타입이 혼재된 경우 int(정수)가 str(문자열)로 바꿔진다
1
| arr = np.array([1, 3.14, '사과', '1234'])
|
array(['1', '3.14', '사과', '1234'], dtype='<U32')
'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)
|
array([ 1, 3, 1234])