如何在 pandas 或 numpy 中对横截面进行切片?

opp*_*yer 4 python arrays numpy slice pandas

我有以下数据框,可以将其复制/粘贴并制作为数据框: df = pd.read_clipboard()

    0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15
0    0   1   5  12  13   7   1   5   5   1   7  13  12   5   1   0
1    1   0   4  13  12   6   0   4   4   0   6  12  13   4   0   1
2    5   4   0   9   8   2   4   0   0   4   2   8   9   0   4   5
3   12  13   9   0   1  11  13   9   9  13  11   1   0   9  13  12
4   13  12   8   1   0  10  12   8   8  12  10   0   1   8  12  13
5    7   6   2  11  10   0   6   2   2   6   0  10  11   2   6   7
6    1   0   4  13  12   6   0   4   4   0   6  12  13   4   0   1
7    5   4   0   9   8   2   4   0   0   4   2   8   9   0   4   5
8    5   4   0   9   8   2   4   0   0   4   2   8   9   0   4   5
9    1   0   4  13  12   6   0   4   4   0   6  12  13   4   0   1
10   7   6   2  11  10   0   6   2   2   6   0  10  11   2   6   7
11  13  12   8   1   0  10  12   8   8  12  10   0   1   8  12  13
12  12  13   9   0   1  11  13   9   9  13  11   1   0   9  13  12
13   5   4   0   9   8   2   4   0   0   4   2   8   9   0   4   5
14   1   0   4  13  12   6   0   4   4   0   6  12  13   4   0   1
15   0   1   5  12  13   7   1   5   5   1   7  13  12   5   1   0
Run Code Online (Sandbox Code Playgroud)

我想从中截取一个横截面,我想要这样的话:

[1, 4, 9, 1, 10, 6, 4, 0, 4, 6, 10, 1, 9, 4, 1])

即索引 df.loc[1, 0]、df.loc[2, 1]、df.loc[3, 2]、df.loc[4, 3] 等。

是否有 numpy 或 pandas 模式可以比我正在做的许多不同索引更容易地获得这种类型的交叉切片?谢谢。

Shu*_*rma 7

我们可以使用np.diagonalwithoffset=1来选择主对角线上方的对角线元素

np.diagonal(df, offset=1)
Run Code Online (Sandbox Code Playgroud)
array([ 1,  4,  9,  1, 10,  6,  4,  0,  4,  6, 10,  1,  9,  4,  1])
Run Code Online (Sandbox Code Playgroud)