python numpy元素的区间查找方法

yipeiwu_com5年前Python基础

找了半天,以为numpy的where函数像matlab 的find函数一样好用,能够返回一个区间内的元素索引位置。结果没有。。(也可能是我没找到)

故自己写一个函数,找多维数组下的,在某个开区间的元素位置

import numpy as np
def find(arr,min,max):
 pos_min = arr>min
 pos_max = arr<max
 pos_rst = pos_min & pos_max
 return np.where(pos_rst == True)#where的返回值刚好可以用[]来进行元素提取
 
 
a=np.arange(10).reshape(2,5)
 
 
pos=find(a,a>3,a<=7)
print(a[pos])#where的返回值刚好可以用[]来进行元素提取

改进版本,接近matlab语法

def find(arr,pos_min,pos_max):
 #pos_min = arr>=min
 #pos_max = arr<max
 pos_rst = pos_min & pos_max
 return np.where(pos_rst == True)#where的返回值刚好可以用[]来进行元素提取

python的numpy where的真正用法,绕了一个大弯

pos=np.where( (a>=3) & (a<8)) #非常要注意这个括号 没有括号估计内部执行顺序不对,捣腾不出来的,具体原因可评论留言
print (a[pos])

改进版本,接近matlab语法

以上这篇python numpy元素的区间查找方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

对python3.4 字符串转16进制的实例详解

如下所示: def str_to_hex(s):     s = s.split(' ')     send_buf =...

Python时间和字符串转换操作实例分析

本文实例讲述了Python时间和字符串转换操作。分享给大家供大家参考,具体如下: 例子: #!/usr/bin/python # -*- coding: UTF-8 -*- impo...

50行Python代码获取高考志愿信息的实现方法

50行Python代码获取高考志愿信息的实现方法

最近遇到个任务,需要将高考志愿信息保存成Excel表格,BOSS丢给我一个网址表格之后就让我自己干了。虽然我以前也学习过Python编写爬虫的知识,不过时间长了忘了,于是摸索了一天之后终...

详解python基础之while循环及if判断

 wlile循环   while True表示永远为真,不管是什么条件都会向下执行,下面是写的一个例子。 #!/usr/bin/env python age = 24        ...

JupyterNotebook设置Python环境的方法步骤

JupyterNotebook设置Python环境的方法步骤

使用Python时,常遇到的一个问题就是Python和库的版本不同。Anaconda的env算是解决这个问题的一个好用的方法。但是,在使用Jupyter Notebook的时候,我却发现...