""" 探究numpy矩阵修改、增加行操作后内存变化 """
import sys
import numpy as np
a = np.zeros((1, 6))
b = np.zeros((3, 6))
print(b)
print(id(b)) # 4400701488
print(sys.getsizeof(b)) # 256
b[0][1] = 1
b[0][3] = 2
print(b)
print(id(b)) # 4400701488
print(sys.getsizeof(b)) # 256
# 以上结果表明修改原矩阵数值不会改变内存及大小
b = np.r_[b, a]
print('\n', id(b)) # 4401094528
print(sys.getsizeof(b)) # 304
# 以上变化增加行(本质合并矩阵)改变内存位置 及 大小
print('===============')
aa = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
bb = np.array([[0, 0, 0]])
print('\n', id(aa)) # 4400701488
print(sys.getsizeof(aa)) # 184
aa = np.insert(aa, 0, values=bb, axis=0)
print('\n', id(aa)) # 4418915584
print(sys.getsizeof(aa)) # 208
# 以上部分增加一行空行内存位置 及 大小都改变