import numpy as np
A = np.arange(4)
B = A.reshape((2, 2))
C = B.flatten()
print(A, '\n')
print(B, '\n')
print(C, '\n')
A = np.arange(4)
B = A.reshape((2, 2))
C = B.ravel()
print(A, '\n')
print(B, '\n')
print(C, '\n')
flatten과 ravel의 차이점을 설명하기 전에 copy와 view 알아보기¶
a = np.arange(5)
b = a.view()
b[0] = 10
print(a)
print(b)
a와 b는 같은 메모리 address 그래서 b를 수정하면 a도 수정됨¶
a = np.arange(5)
b = a[:3]
b[0] = 10
print(a)
print(b)
a = np.arange(5)
b = a.copy()
b[0] = 10
print(a)
print(b)
a, b는 다른 메모리, 서로 영향없음¶
base¶
a = np.arange(5)
b = a.copy()
c = a.view()
d = a[:3]
print(b.base is a)
print(c.base is a)
print(d.base is a)
a = np.arange(4)
b = np.reshape(a, (2, 2))
b[0, 0] = 10
print(b.base is a, '\n')
print(a, '\n')
print(b)
a = np.arange(4)
b = np.resize(a, (2, 2))
b[0, 0] = 10
print(b.base is a, '\n')
print(a, '\n')
print(b)
a = np.arange(4)
b = np.reshape(a, (2,2)).copy() # 이렇게 쓰면 원본 영향없음
b[0,0] = 10
print(b.base is a, '\n')
print(a, '\n')
print(b)
a = np.random.randint(0, 10, (3,3))
b = a.ravel()
b[0] = 10
print(b.base is a, '\n')
print(a, '\n')
print(b)
a = np.random.randint(0, 10, (3,3))
b = a.flatten()
b[0] = 10
print(b.base is a, '\n')
print(a, '\n')
print(b)
'Python > Numpy' 카테고리의 다른 글
np.reshape, np.resize 차이점 (0) | 2021.03.30 |
---|---|
ndim, shape, size (0) | 2021.03.29 |
linspace와 arange 차이점, random.randn, random.normal, random.uniform, random.randint (0) | 2021.03.29 |