프로그래밍

[Python] NumPy Library 활용(2)

RainIron 2021. 5. 5. 14:54
반응형

7. Conditions and Boolean Arrays

배열 이름[조건] -> 원하는 배열 값 반환

A = np.random.random((4, 4))
'''
array([[0.32191258, 0.13556957, 0.75832153, 0.69059683],
       [0.3595375 , 0.39863105, 0.13788883, 0.65433968],
       [0.79409875, 0.1002468 , 0.10226936, 0.77828777],
       [0.84994903, 0.97297211, 0.73935771, 0.51436042]])
'''

print(A < 0.5)
'''
[[ True  True False False]
 [ True  True  True False]
 [False  True  True False]
 [False False False False]]
 '''

# boolean indexing
print(A[A < 0.5])
'''
[0.32191258 0.13556957 0.3595375  0.39863105 0.13788883 0.1002468, 0.10226936]
'''

 

8. Array Manipulation

* np.vstack((x, y)): vertical → 수직 방향으로 쌓기

* np.hsatck((x, y)): horizontal 수평 방향으로 쌓기

* np.vsplit((x 대상행렬, y 등분)): split을 할 때, 공평하게 y 등분으로 나뉘어짐. 수직 모양의 행렬을 나누기

* np.hsplit((x 대상행렬, y 등분)): split을 할 때, 공평하게 y 등분으로 나뉘어짐. 수평 모양의 행렬을  나누기

B = np.ones((3, 3))
C = np.zeros((3, 3))

D = np.vstack((B, C))
'''
array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.],
       [0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])
'''

E = np.hstack((B, C))
'''
array([[1., 1., 1., 0., 0., 0.],
       [1., 1., 1., 0., 0., 0.],
       [1., 1., 1., 0., 0., 0.]])
'''

[F, G] = np.hsplit(E, 2)
print(F)
'''
array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.]])
'''

print(G)
'''
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])
'''

[H, I] = np.vsplit(D, 2)
print(H)
'''
array([[1., 1., 1.],
       [1., 1., 1.],
       [1., 1., 1.]])
'''

print(I)
'''
array([[0., 0., 0.],
       [0., 0., 0.],
       [0., 0., 0.]])
'''

 

* np.split(ary, indices_or_sections, axis = 0)

ary: ndarray(대상 행렬)

indices_or_sections: int or 1-D array

    - int일 경우: x 갯수 만큼 등분

    - 1-D array: 예를 들어 [2, 3]라면 ary[:2], ary[2:3], ary[3:] 로 3등분이 된다.

axis: 축

A = np.arange(16).reshape(4, 4)
'''
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
'''

[A1, A2, A3] = np.split(A, [2, 3], axis = 0)
'''
"A1"
array([[0, 1, 2, 3],
       [4, 5, 6, 7]])

"A2"
array([[ 8,  9, 10, 11]])

"A3"
array([[12, 13, 14, 15]])

'''

[A1, A2, A3] = np.split(A, [2, 3], axis = 1)
'''
"A1"
array([[ 0,  1],
       [ 4,  5],
       [ 8,  9],
       [12, 13]])

"A2"
array([[ 2],
       [ 6],
       [10],
       [14]])
       
"A3"
array([[ 3],
       [ 7],
       [11],
       [15]])

'''

 

* np.copy(): 원본과 다른 객체 생성

D = np.arnage(4) # array([0, 1, 2, 3])

copy_array = A.copy() # array([0, 1, 2, 3])

D[0] = 99

'''
D = array([99, 1, 2, 3])
copy_array = array([0, 1, 2, 3])
'''

 

9. Reading and Writing Array from File

이 때, os.getcwd()을 사용해서 현재 디렉터리가 어디를 가리키고 있는지 확인해야한다.

* np.save(파일명, 데이터(array, series, dataframe 등)

* np.load(파일명)

반응형

'프로그래밍' 카테고리의 다른 글

[Python] Data Manipulation  (0) 2021.05.07
[Python] Pandas Library(Series)(2)  (0) 2021.05.06
[Python] Pandas Library 활용(DataFrame)  (0) 2021.05.06
[Python] Pandas Library 활용(Series)(1)  (0) 2021.05.05
[Python] NumPy Library 활용(1)  (0) 2021.05.04