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

相关文章

基于hashlib模块--加密(详解)

用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashl...

python 获取图片分辨率的方法

pil版: from PIL import Image filename = r'E:\data\yangben\0.jpg' img = Image.open(filename)...

Python enumerate索引迭代代码解析

本文研究的主要是Python enumerate索引迭代的问题,具体介绍如下。 索引迭代 Python中,迭代永远是取出元素本身,而非元素的索引。 对于有序集合,元素确实是有索引的。...

Python中存取文件的4种不同操作

Python中存取文件的4种不同操作

前言: 最近开始学习tensorflow框架,选修课让任选一种框架实现mnist手写数字的识别分类。小詹也就随着大流选择了 tf 框架,跟着教程边学边做,小詹用了不同的神经网络实现了识别...

深入解析Python中的WSGI接口

概述 WSGI接口包含两方面:server/gateway 及 application/framework。 server调用由application提供的可调用对象。 另外在serve...