Normal indexing
matrix = np.random.randint(1,10, (4,4))
print(matrix)
"""
[[4 6 2 6]
[2 4 2 6]
[7 2 6 1]
[8 1 4 1]]
"""
print(f'{matrix[0]} {matrix[0][1]}')
print(f'{matrix[1][3]} {matrix[1, 3]}')
print(matrix[1:3, 2:5])
print(matrix[1, ...])
print(matrix[1,:])
"""
[[2 6]
[6 1]]
[2 4 2 6]
[2 4 2 6]
"""
Boolean indexing & Fancy indexing
bools = np.array([True, True, False, False])
print(matrix[1,:][bools])
print(matrix[1,:][~bools])
matrix = np.random.randint(1, 10, (5, 5))
new_matrix = matrix[ matrix > 7]
print(new_matrix)
new_matrix = matrix[ matrix % 2 == 0 ]
print(new_matrix)
matrix[ matrix < 0 ] = 0
matrix[ matrix % 2 == 1 ] = -2
print(matrix[[0, 2]])
"""
[[4 8 8 3 6]
[9 6 1 4 4]]
"""
조건에 따른 값 지정
print(np.where(matrix > 5, 1, 0))
print()
print(np.argwhere(matrix > 5))
정렬
x = np.random.randint(1, 20, 16).reshape(4,4)
print(x)
print(np.sort(x, axis=0))
print(x.sort(axis=0))
print(x)
"""
[[10 9 10 5]
[ 9 19 5 13]
[ 4 18 8 13]
[ 9 15 15 17]]
[[ 4 9 5 5]
[ 9 15 8 13]
[ 9 18 10 13]
[10 19 15 17]]
None
[[ 4 9 5 5]
[ 9 15 8 13]
[ 9 18 10 13]
[10 19 15 17]]
"""
x = np.random.randint(1, 20, 16).reshape(4,4)
print(x)
print(np.argsort(x))
print(np.argsort(x, axis=0))
print(np.argsort(x, axis=None))
"""
[[17 15 16 18]
[17 15 15 12]
[16 5 1 8]
[ 2 3 11 19]]
[[1 2 0 3]
[3 1 2 0]
[2 1 3 0]
[0 1 2 3]]
[[3 3 2 2]
[2 2 3 1]
[0 0 1 0]
[1 1 0 3]]
[10 12 13 9 11 14 7 1 5 6 2 8 0 4 3 15]
"""
전치행렬
x = np.random.randint(1, 20, 16).reshape(4,4)
print(x)
print(x.T)
print(np.transpose(x))
print(x.transpose())
"""
[[ 8 8 4 7]
[ 2 9 18 14]
[11 16 1 4]
[18 8 8 15]]
[[ 8 2 11 18]
[ 8 9 16 8]
[ 4 18 1 8]
[ 7 14 4 15]]
[[ 8 2 11 18]
[ 8 9 16 8]
[ 4 18 1 8]
[ 7 14 4 15]]
[[ 8 2 11 18]
[ 8 9 16 8]
[ 4 18 1 8]
[ 7 14 4 15]]
"""
댓글