04. 矩阵的复制,排序,拓展
1. NumPy 的引用问题
import numpy as np
# 同一个对象的不同引用将会互相影响(实质改变的都是同一个对象)
a = np.arange(12)
b = a
print(a is b)
print(id(a))
print(id(b))
b.shape = 2,6
print(a)
True
2690130685744
2690130685744
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]]
2. 浅复制
# view 函数用于浅复制,虽然 a 和 c 的内存地址不一致,但是指向的数据都是同一份,c 修改了矩阵数据的值,同样会影响 a
# 以下代码执行两次的结果 a 矩阵的数据不一致!
print(a)
print('--------')
c = a.view()
print(c is a)
print(id(a))
print(id(c)