npy一维数组如何对给出的索引进行反选

本文介绍了如何在numpy一维数组中,根据给定的索引进行反选操作。以一个示例说明了如何创建bool型索引数组,并利用该索引选择不在给定索引列表中的元素。

本文主要解释了如何根据给定的索引对一维数组进行反选的操作。
以下文数据为例

import numpy as np
data = np.array(
    [ 0.93825827,  0.26701143, 0.99121108,  0.35582816, 0.90154837,  0.86254049, 0.83149103,  0.42222948, 0.27309625,  0.38925281]
)

如果我们给定一个阈值比如0.5来筛选数值,我们可以通过以下操作来选取相应的项

greater_than_05 = data[data>0.5]
less_than_05 = data[data<=0.5]
print("greater_than_05 : \n", greater_than_05)
print("less_than_05 : \n", less_than_05)

输出结果如下 :
greater_than_05 :
[0.93825827 0.99121108 0.90154837 0.86254049 0.83149103]
less_than_05 :
[0.26701143 0.35582816 0.42222948 0.27309625 0.38925281]

那么在更加复杂的情况下,例如,我们给出索引sample_indexes = [0,1,2],如何反选剩下的项呢。首先我们需要知道的就是,npy数组是可以使用bool型的索引的,当bool型索引数组的长度与目标len(data)相同时,我们就会从data中选出对应索引数组中所有True对应的项。下面用一个简单的例子解释 :

sample_indexes=[0,1,2]
mask = np.ones(len(data), np.bool)
mask[sample_indexes] = False
print("mask :\n",mask)
other_data = data[mask]
print("other_data : \n",other_data)

输出结果如下 :
mask :
[False False False True True True True True True True]
other_data :
[0.35582816 0.90154837 0.86254049 0.83149103 0.42222948 0.27309625
0.38925281]

其中我们首先创建一个与目标1D数组长度相同的bool型数组,将sample_index对应的改为false,之后就可以通过剩下的mask索引来反选出其他的数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值