python – 使用单个索引项的numpy子矩阵3D
发布时间:2020-12-20 13:15:29 所属栏目:Python 来源:网络整理
导读:我有一个3D numpy数组: K = (np.arange(36)).reshape((4,3,3))+1[[[ 1 2 3][ 4 5 6][ 7 8 9]][[10 11 12][13 14 15][16 17 18]][[19 20 21][22 23 24][25 26 27]][[28 29 30][31 32 33][34 35 36]]] 其中K中的每个项目都是矩阵. 现在,我想使用某个索引向量
我有一个3D numpy数组:
K = (np.arange(36)).reshape((4,3,3))+1 [[[ 1 2 3] [ 4 5 6] [ 7 8 9]] [[10 11 12] [13 14 15] [16 17 18]] [[19 20 21] [22 23 24] [25 26 27]] [[28 29 30] [31 32 33] [34 35 36]]] 其中K中的每个项目都是矩阵. 我知道这有可能: idx = np.s_[:,:2,:2] K_sub = K[idx] [[[ 1 2] [ 4 5]] [[10 11] [13 14]] [[19 20] [22 23]] [[28 29] [31 32]]] 问题是我想使用任意索引数组而不是切片来选择行和列. 此外,我想使用单个对象来获取子矩阵列表,例如: K_sub = [magic_indexing] 并不是: K_sub = np.array([k_[train][:,train] for k_ in K]) 存在一种简单的方法吗? 解决方法
不确定它是否足够适合你,但有一种方法是使用
np.ix_ ,因此使用
advanced-indexing ,就像这样 –
K[np.ix_(np.arange(K.shape[0]),train,train)] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |