切片numpy数组与所需行的列表 [英] Slice numpy array wth list of wanted rows

查看:67
本文介绍了切片numpy数组与所需行的列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个numpy二维数组 A 和行号列表 row_set .我如何获得新的数组 B ,例如 row_set = [0,2,5] ,然后 B = [A_row [0],A_row [2],A_row [5]] ?

I have a numpy 2d array A, and a list of row numbers row_set. How can I get new array B such as if row_set = [0, 2, 5], then B = [A_row[0], A_row[2], A_row[5]]?

我想到了这样的东西:

def slice_matrix(A, row_set):
    slice = array([row for row in A if row_num in row_set])

但是我不知道如何获取row_num.

but I don't have any idea, how can I get a row_num.

推荐答案

使用 take():

In [87]: m = np.random.random((6, 2))

In [88]: m
Out[88]: 
array([[ 0.6641412 ,  0.31556053],
       [ 0.11480163,  0.00143887],
       [ 0.4677745 ,  0.43055324],
       [ 0.49749099,  0.15678506],
       [ 0.48024596,  0.65701218],
       [ 0.48952677,  0.97089177]])

In [89]: m.take([0, 2, 5], axis=0)
Out[89]: 
array([[ 0.6641412 ,  0.31556053],
       [ 0.4677745 ,  0.43055324],
       [ 0.48952677,  0.97089177]])

这篇关于切片numpy数组与所需行的列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆