본문 바로가기

Language/python

[ Python 자료형 ] numpy 관리

반응형

numpyhan.py
0.00MB

1. numpy 생성하기

 

리스트형태 비슷하게 생겼지만, ','로 구분하지 않고 띄워쓰기로 원소가 구분되어있음.

 

a = np.array([1.1, 2.3, 3.5]) # 리스트로부터 집합 생성
b = np.arange(10)
c = np.arange(0, 10, 2)
d = np.ones((3, 7), dtype=int)
e = np.random.random((2, 4))
def f(x, y):
return 10*x + y
g = np.fromfunction(f, (2, 4), dtype=int)

display(a)
display(b)
display(c)
display(d)
display(e)
display(g)

 

[1.1 2.3 3.5]
[0 1 2 3 4 5 6 7 8 9]
[0 2 4 6 8]
[[1 1 1 1 1 1 1]
[1 1 1 1 1 1 1]
[1 1 1 1 1 1 1]]
[[0.01961757 0.93007107 0.34289332 0.67431283]
[0.05096109 0.2624511 0.68793221 0.23716327]]
[[ 0 1 2 3]
[10 11 12 13]]

2. numpy 사양확인

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

display(m.shape)
display(m.dtype)

 

(2, 2)
int32

3. numpy 연산하기

기존 연산자를 사용하면 각 요소들을 1:1로 매칭해서 연산한다.

x = np.array([1.0, 2.0, 3.0])
y = np.array([2.0, 4.0, 6.0])

a = x + y
b = x - y
c = x * y
d = x / y
e = x * y

display(a)
display(b)
display(c)
display(d)
display(e)

 

[3. 6. 9.]
[-1. -2. -3.]
[ 2. 8. 18.]
[0.5 0.5 0.5]
[ 2. 8. 18.]

4. numpy sum, min, max 함수

a = np.random.random((2, 3))
b = a.sum()
c = a.min()
d = a.max()

display(a)
display(b)
display(c)
display(d)

 

[[0.10296047 0.03212615 0.75786634]
[0.39795634 0.60008838 0.65154225]]
2.5425399278116245
0.032126153639016386
0.757866340200699

b = a.sum(axis=0) # 각 열의 합, axis=0이면 열
c = a.min(axis=1) # 각 행의 최소값, axis=1이면 행

display(b)
display(c)

 

[0.50091681 0.63221453 1.40940859]
[0.03212615 0.39795634]

5. numpy 인덱스 연산

a = np.array([[1, 2], [3, 4]])
b = a[0]
c = a[0][0]
d = a[np.array([0])]
e = a > 1 # 필터가 되어 동일 형태의 boolean값의 numpy로 변경된다.
f = a[a > 1]

display(a)
display(b)
display(c)
display(d)
display(e)
display(f)

 

[[1 2]
[3 4]]
[1 2]
1
[[1 2]]
[[False True]
[ True True]]
[2 3 4]

6. numpy 변환하기 : 다차원 행렬로 변환

a = np.arange(12)
b = a.reshape(4, 3) #=> 변환된 행렬을 반환

display(a)
display(b)

 

[ 0 1 2 3 4 5 6 7 8 9 10 11]
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]

7. numpy 변환하기 : 본인 자체를 다차원 행렬로 변환

a = np.arange(12)
a.resize((3, 4)) #=> 자체를 변환함(파괴적)

display(a)

 

[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]

8. numpy 변환하기 : 다차원 행렬을 1차원 행렬로 변환 flatten

a = np.array([[ 0 ,1, 2, 3], [ 4, 5, 6, 7],[ 8, 9, 10, 11]])
b = a.flatten()

display(b)

 

[ 0  1  2  3  4  5  6  7  8  9 10 11]

9. numpy 변환하기 : 다차원 행렬을 1차원 행렬로 변환 ravel


a = np.array([[ 0 ,1, 2, 3], [ 4, 5, 6, 7],[ 8, 9, 10, 11]])
b = a.flatten()


display(b)

 

[ 0  1  2  3  4  5  6  7  8  9 10 11]

10. numpy 변환하기 : 전치행렬

a = np.array([[ 0 ,1, 2, 3], [ 4, 5, 6, 7],[ 8, 9, 10, 11]])
b = a.T

display(a)
display(b)

 

[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[ 0 4 8]
[ 1 5 9]
[ 2 6 10]
[ 3 7 11]]

 

반응형

'Language > python' 카테고리의 다른 글

[ Python pip ] pip 관리  (0) 2019.12.19
[ Python conda ] conda 가상환경 관리  (0) 2019.12.19
[ Python 자료형 ] Dataframe 관리  (0) 2019.12.08
[ Python 자료형 ] 집합(Set) 관리  (0) 2019.12.08
[ Python 자료형 ] Dictionary  (0) 2019.12.08