由于习惯了 C++/Matlab 使用连续的 2 个[] 获取元素

当需要选择矩阵的一列时,容易写作:

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(a[:][-1]) # [7, 8, 9]

结果不对,因为上面的写法等价于:

b = a[:]
c = b[-1]

a[:][-1] = a[-1] 方括号的运算顺序先计算最近的,再计算远的,因此得不到一列,而只能得到最后一行

numpy

为了获取一列,可以使用 numpy:

import numpy as np

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
a = np.array(a)
print(a[:, -1]) # [3 6 9]