1. 用列表作为索引
1 a = np.around(10*np.random.random((3, 3))) 2 b = [0, 1, 2] 3 c = [0, 1, 2] 4 print(a) 5 print(a[b, c])
运行结果如下,利用[0, 1, 2]作为行索引, [0,1, 2]作为列索引,输出了a[0, 0], a[1, 1], a[2, 3]。
2.复制
(1) a = b是将b的id复制给b,然后a与b指向同一个对象
1 import numpy as np 2 3 a = np.arange(5) 4 print(a) 5 b = a 6 print(id(a)) 7 print(id(b))
可以通过下图的运行结果看到,a的id与b的id相等,指向的同一个物体。
(2) b = a.view() 是浅复制,b和a是不同的对象,但是他们的元素是共享的。
1 import numpy as np 2 3 a = np.arange(5) 4 print(a) 5 b = a.view() 6 print(id(a)) 7 print(id(b)) 8 b[0] = -1 9 print(a)
通过下图运行结果可以看到,a和b是不同的对象,但是当我改变a的元素的时候,b的元素也发生了改变。‘
(3)b = a.copy()是深复制,b中的元素是a中的副本