【发布时间】:2017-04-20 10:38:48
【问题描述】:
我有以下 numpy 数组: (nx1) 的真值表和 (nxk) 的矩阵,其中 n 为 5,在本例中 k 为 2。
btable = np.array([[True],[False],[False],[True],[True]])
bb=np.array([[1.842,4.607],[5.659,4.799],[6.352,3.290],[2.904,4.612],[3.231,4.939]])
我想根据btable中的索引值提取bb中的向量。
我试过 choicebb=bb[btable==True] 得到了结果
[ 1.84207953 2.90401653 3.23197916]
choicebb=bb[btable] 也得到了相同的结果。
我想要的是
[[1.842,4.607]
[2.904,4.612]
[3.231,4.939]]
我也试过
choicebb=bb[btable==True,:]
但我会得到
---> 13 选择bb=bb[btable==True,:]
14 打印(choicebb)
IndexError: 数组索引过多
这可以在matlab中使用choicebb=bb(btable,:);轻松完成
【问题讨论】:
-
btable必须是np.array([True,False,False,True,True])。 -
我使用
matches=(idx==i)之类的命令生成它,其中 idx 是 kx1 数组,i 是我的匹配条件。
标签: python arrays numpy indexing