python numpy元素的区间查找方法

yipeiwu_com7年前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设计】。

相关文章

Django渲染Markdown文章目录的方法示例

Django渲染Markdown文章目录的方法示例

对会读书的人来说,读一本书要做的第一件事,就是仔细阅读这本书的目录。阅读目录可以对整体内容有所了解,并清楚地知道感兴趣的部分在哪里,提高阅读质量。 博文也是同样的,好的目录对博主和读者都...

python中查找excel某一列的重复数据 剔除之后打印

1.在python中excel的简单读写操作,推荐使用xlrd(特别是读操作) 2.到http://pypi.python.org/pypi/xlrd 去下载 xlrd库; 3.工程代码...

在python中创建指定大小的多维数组方式

python中创建指定大小的二维数组,有点像C++中进行动态申请内存创建数组,不过相比较而言,python中更为简单一些。 创建n行m列的二维数组: n = 2 m = 3 ma...

python3.3教程之模拟百度登陆代码分享

复制代码 代码如下:#-*-coding:utf-8-*-'''Created on 2014年1月10日 @author: hhdys'''import urllib.request,...

详解Python 正则表达式模块

详解Python 正则表达式模块

由于最近需要使用爬虫爬取数据进行测试,所以开始了爬虫的填坑之旅,那么首先就是先系统的学习下关于正则相关的知识啦。所以将下面正则方面的知识点做了个整理。语言环境为Python。主要讲解下P...