繁体   English   中英

如何通过索引数组获取二维 numpy 数组的行

[英]how to get rows of 2d numpy array by index array

我有一个看起来像这样的二维数组:

my_array = np.array([[1,7]
                     [2,4]
                     [3,10] 
                     [4,3] 
                     [5,23]])

我有一个如下所示的索引数组:

index_array = np.array([0,2,3])

作为输出,我想获得一个只包含索引数组中行的矩阵,因此输出矩阵的形状应该是 (3,2) 并且它应该如下所示:

[[1,7]
 [3,10]
 [4,3]]

该解决方案不应使用 for 循环,而应适用于任何二维矩阵。 提前致谢 :)

您可以使用numpy 数组切片符号来选择行:D

import numpy as np

my_array = np.array([[1,7],
                     [2,4],
                     [3,10], 
                     [4,3],
                     [5,23]])

print(my_array[[0,2,3]])

my_array[index_array]也能工作

不确定列表理解是否符合 for 循环的条件,但您可以使用以下单行解决方案:

[list(my_array[i]) for i in index_array]

这将返回[[1, 7], [3, 10], [4, 3]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM