话不多说,直接看图说话
t = np.array([[1,2],[3,4]])
output: array([[1, 2],
[3, 4]])
t[[1,0]] #行交换
t[:, [1,0]] #列交换
t[[0,0]] #用第0行元素覆盖第一行元素
t[[1,0], [1,0]] #取t[1,1]和t[0,0]
t[[[0,1],[0,1]], :] #按行复制
t[:, [[0,1],[0,1]]] #按列复制
t[:, [[1,0],[1,0]]] #按列复制再交换列位置
t[[[0,1],[0,1]], [0,1]] #取[0,0],[1,1],[0,0],[1,1](逗号左边与右边(numpy的broadcasting)对应位置组成一个平面坐标,用这个去索引)
t[[[1,0], [1,0]], [[1,1], [0,0]]] #取[1,1], [0,1], [1,0], [0,0](其实这个就是对角线交换)
output:
t[[1,0]] = array([[3, 4],
[1, 2]])
t[:, [1,0]] = array([[2, 1],
[4, 3]])
t[[0,0]] = array([[1, 2],
[1, 2]])
t[[1,0], [1,0]] = array([4, 1])
t[[[0,1],[0,1]], :] = array([[[1, 2],
[3, 4]],
[[1, 2],
[3, 4]]])
t[:, [[0,1],[0,1]]] = array([[[1, 2],
[1, 2]],
[[3, 4],
[3, 4]]])
t[:, [[1,0],[1,0]]] = array([[[2, 1],
[2, 1]],
[[4, 3],
[4, 3]]])
t[[[0,1],[0,1]], [0,1]] = array([[1, 4],
[1, 4]])
t[[[1,0], [1,0]], [[1,1], [0,0]]] = array([[4, 2],
[3, 1]])