[英]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.