Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以pythonic方式使用列表索引numpy数组_Python_Arrays_Numpy - Fatal编程技术网

以pythonic方式使用列表索引numpy数组

以pythonic方式使用列表索引numpy数组,python,arrays,numpy,Python,Arrays,Numpy,假设我有一个python数组,如 array = [[2,3,4],[5,6,7],[8,9,10]] 和一份清单 list = [0,2,1] 我基本上需要一个单行程序来从列表给出的数组中提取索引元素 例如,对于给定的数组和列表: result = [2,7,9] 我下意识的选择是 result = array[:, list] 但这并不奏效 我知道for循环应该可以做到这一点,我只是想知道是否有一些索引可以做到这一点 In [24]: a Out[24]: array([[ 2,

假设我有一个python数组,如

array = [[2,3,4],[5,6,7],[8,9,10]]
和一份清单

list = [0,2,1]
我基本上需要一个单行程序来从列表给出的数组中提取索引元素

例如,对于给定的数组和列表:

result = [2,7,9]
我下意识的选择是

result = array[:, list]
但这并不奏效

我知道for循环应该可以做到这一点,我只是想知道是否有一些索引可以做到这一点

In [24]: a
Out[24]: 
array([[ 2,  3,  4],                                                                              
       [ 5,  6,  7],                                                                              
       [ 8,  9, 10]])                                                                             

In [25]: lis
Out[25]: [0, 2, 1]

In [26]: a[np.arange(len(a)), lis]                                                              
Out[26]: array([2, 7, 9])

使用
enumerate
创建行索引并解压缩(
zip(*…)
)此集合以获取行索引(范围
[0,len(列表))
)和列索引(
lis
):


是的,正是这样,我想知道为什么arange会起作用,但对所有arange进行索引并没有。@Leonpalafox查看多维数组上的索引是如何工作的:
a[zip(*enumerate(lis))]