从numpy数组中取出满足条件的元素示例

  

<>强例如问题:从arr数组中提取所有奇数元素。

        输入:arr=np。数组([0,1,2,3,4,5,6,7,8,9))      输出:#比;数组([1、3、5、7、9])      解决方案:      #输入      在在在arr=np。数组([0,1,2,3,4,5,6,7,8,9))      #解决方案      arr=arr (arr % 2==1)      在在在数组([1、3、5、7、9])   之前      

这是对奇数元素的提取,其他条件同理,在这个问题上我们深入再学习一下,首先numpy中数的数组组是可以直接对数组中的每个元素进行处理的,例如我们想对每个元素减一:

        #输入      在在在arr=np。数组([0,1,2,3,4,5,6,7,8,9))      #解决方案      在在在加勒比海盗   数组([0,1,2,3,4,5,6,7,8,9))   在在在加勒比海盗- 1   数组([1,0,1,2,3,4,5,6,7,8])      

从上面的例子我们可以看出来,arr对直接进行减一操作,结果是对每一个元素都进行了减一的操作,数组的维度不变,为了满足取出特定条件的元素这个操作,我们可以进行条件判断,例如判断每个元素是否为奇数:

        #输入      在在在arr=np.arange (10)   在在在加勒比海盗   数组([0,1,2,3,4,5,6,7,8,9))   #解决方案      在在在arr % 2==1   数组([假的,真的,假的,真的,假的,真的,假的,真的,假的,真正的])      

由此可见,条件判断后输出为和arr相同维度的数组,但是其中每个元素为布尔类型的值,取值为数组arr对每个元素分别进行条件判断的结果。

  

下面我们分析数的arr对组进行特定取值,给其一个布尔类型的arr数组,并且维度与arr相同,以此得到取值的目的:

        #输入      在在在arr_bool=np。数组([1,- 1,0,0,1,1,0,0,1,1],dtype=bool)   在在在arr_bool   数组([没错,真的,假的,假的,真的,真的,假的,假的,真的,真的))      #解决方案   在在在加勒比海盗(arr_bool)   数组([0、1、4、5、8、9])      

从上述例子,我们构建了一个布尔类型的数组为arr_bool,并且维度与arr相同,进行直接嵌入实现了取值,以此完成了我们最终的目的,可以对任意满足条件的元素进行提取。并且理解了其中的原理。

  

<>强PS:番外篇,如果维度不同可以吗?

        #输入      在在在arr_bool=np。(11日dtype=bool)   在在在arr_bool   数组([真的,真的,真的,真的,真的,真的,真的,真的,真的,真的,真的])#注意! !这里有11个真正的哦。      #解决方案   在在在加勒比海盗(arr_bool)   回溯(最近的电话):   文件“& lt; stdin>”,1号线& lt; module>   IndexError:布尔指数不匹配索引数组维度0;维是10但相应的布尔维是11      

由上可见,维度必须保持一致,从加勒比海盗数组里才可以按照bool类型取出对应位置为真正的元素。这个性质帮助我们可以更灵活的处理numpy数组。

  

<强> PS2:如何替换满足条件的元素为其它值呢?

        在在在arr=np.arange (10)   在在在加勒比海盗   数组([0,1,2,3,4,5,6,7,8,9))   在在在arr (arr % 2==1]=1   在在在加勒比海盗   数组([0,1、2、1,4,1、6、1、8、1])      

以上这篇从numpy数组中取出满足条件的元素示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

从numpy数组中取出满足条件的元素示例