由于习惯了 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]