반응형
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 |