Bla*_*ack 7 python arrays numpy
我有一些Numpy代码,我试图破译.有一条线v1 = v1[:, a1.tolist()]传递一个numpy数组a1并将其转换为一个列表.我对v1[:, a1.tolist()]实际做的事感到困惑.我知道v1现在被设置v1为由选择给出的列数组[:, a1.tolist()]但是被选中的是什么?更确切地说,[:, a.tolist()]做什么?
650*_*502 11
如果将它拆分为两部分,则您观察到的语法更容易理解:
numpy意思是
a[[1,2,3]]
Run Code Online (Sandbox Code Playgroud)
是
[a[1], a[2], a[3]]
Run Code Online (Sandbox Code Playgroud)
换句话说,使用列表作为索引就像创建使用元素列表作为索引一样.
[:,x]的含义
a2[:, x]
Run Code Online (Sandbox Code Playgroud)
是
[a2[0][x],
a2[1][x],
a2[2][x],
...
a2[n-1][x]]
Run Code Online (Sandbox Code Playgroud)
即从矩阵中选择一列.
的含义
a[:, [1, 3, 5]]
Run Code Online (Sandbox Code Playgroud)
因此
[[a[ 0 ][1], a[ 0 ][3], a[ 0 ][5]],
[a[ 1 ][1], a[ 1 ][3], a[ 1 ][5]],
...
[a[n-1][1], a[n-1][3], a[n-1][5]]]
Run Code Online (Sandbox Code Playgroud)
换句话说,a带有选择列的副本(或复制和重新排序;索引列表中的元素不需要是不同的或排序的).