numpy在对数组进行“行过滤“的时候,使用集合运算函数比使用逻辑运算函数更简单
1、集合运算
例1,集合运算的函数
import numpy as np
# 创建一维 ndarray x
x = np.array([1,2,3,4,5])
# 创建一维 ndarray y
y = np.array([6,5,4,8,7])
# 输出 x
print('x = ', x)
# 输出 y
print('y = ', y)
# 比较x和y
print('使用intersect1d输出x和y的交集:', np.intersect1d(x,y))
print('使用setdiff1d输出在x中不在y中的元素:', np.setdiff1d(x,y))
print('使用union1d输出x和y的并集:',np.union1d(x,y))
print('使用setxor1d输出x和y的异或集:',np.setxor1d(x,y))
例2 ,集合运算函数实现行过滤
x1_isin = np.intersect1d(np.where(coors_xyxy[:, 0] > startx), np.where(coors_xyxy[:, 0] < endx))
x2_isin = np.intersect1d(np.where(coors_xyxy[:, 2] > startx), np.where(coors_xyxy[:, 2] < endx))
coor_isin = np.union1d(x1_isin, x2_isin) # 解决没有目标的情况
2、逻辑运算
例1,通过逻辑运算实现行过滤
vertical_middle_idx = np.where(np.logical_or(np.logical_and((pred_array1[:, 0] - np.array([ww / 2 - 90 / 5376 * ww]) <= 0), (pred_array1[:, 2] - np.array([ww / 2 - 90 / 5376 * ww]) >= 0)),np.logical_or(np.logical_and((pred_array1[:, 0] - np.array([ww / 2 + 90 / 5376 * ww]) <= 0),(pred_array1[:, 2] - np.array([ww / 2 + 90 / 5376 * ww]) >= 0)),np.logical_and((pred_array1[:, 0] - np.array([ww / 2 - 90 / 5376 * ww]) > 0),(pred_array1[:, 2] - np.array([ww / 2 + 90 / 5376 * ww]) < 0)))))
pred_array1 = pred_array1[vertical_middle_idx]
3、总结
从上面可看出,使用集合运算函数,更简单一些,逻辑也更好理解一些。
numpy在对数组进行“行过滤“的时候,使用集合运算函数比使用逻辑运算函数更简单相关推荐
- Numpy中的数组、行/列向量及其之间的转化
1.array数组 [In] import numpy as np [In] a = np.array([1,2,3]) #一个[]对应的是既不是行向量也不是列向量,而是一个数组. [Out] arr ...
- 【Python】Numpy基础:数组和矢量运算
Numpy基础:数组和矢量运算 目录: 文章目录 一 Numpy及其重要性 二 ndarray:一种多维数组对象 1 创建ndarray 2 ndarray的数据类型 3 数组和标量之间的运算 4 基 ...
- 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算
第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说,用numpy的主要目的在于应用矢量化运算.Numpy并没有多么高级的数据分析功能,理解Numpy ...
- 第四篇 NumPy基础:数组和⽮量计算
NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.⼤多数提供科学计算的包都是⽤NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,⼀个具 ...
- Python NumPy 基础:数组和向量计算
文章目录 1.1 NumPy 的ndarray:一种多维数组对象 创建ndarray ndarray数据类型 NumPy 数组的运算 基本的索引和切片 切片索引 布尔型索引 花式索引 数组转置和轴对换 ...
- Python数据分析学习四 NumPy基础:数组和矢量计算
Python数据分析学习系列四NumPy基础:数组和矢量计算 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下 ...
- python二维向量运算模拟_【转载 Python】Numpy基础:数组和矢量运算
Numpy基础:数组和矢量运算 目录: 尊重原创,转载出处:https://blog.csdn.net/sunyaowu315/article/details/82733249?utm_medium= ...
- Python Numpy多维数组.sum(axis=0/1/2...) 详解
Python Numpy多维数组.sum(axis=0/1/2-) 详解 numpy中axis取值的说明 首先对numpy中axis取值进行说明:一维数组时axis=0,二维数组时axis=0,1,维 ...
- 转载:谢谢原作者: 块设备驱动实战基础篇二 (继续完善170行过滤驱动代码至200行)
1.3块设备驱动关键数据结构及函数API详细剖析 经过上节四个步骤我们已经熟悉并实战了一个最基本的过滤块设备驱动的设计技巧,我们这一节先不继续实战,我们本节把上节170行代码中接触到的块设备核心数据结 ...
- numpy列相加_Python数据分析入门:NumPy基础:数组与向量化计算
本章重点内容: 1.NumPy ndarray:多维数组对象 1)生成ndarry 2)ndarray的数据类型 3)NumPy数据算术 4)基础索引与切片 5)布尔索引 6)数组转置和换轴 2.通用 ...
最新文章
- JavaScript系列-----对象基于哈希存储(Key,Value之Key篇) (1)
- HTML CSS样式表布局
- 拦截器原理多个拦截器执行顺序
- 迭代器协议、斐波那契数列
- python之叠加两个图片
- java实现二维码的生成与解析
- 利用拉格朗日中值定理求极限
- No Bootable Device 问题解决(由于误删ESP分区导致)
- hihocoder1829 Tomb Raider
- 二分查找的平均查找长度
- 百度AI接口测试案列一:车牌识别
- 麦克表单可以做二维码吗_令令开门二维码门禁设备、手机均断网,可以开门吗?...
- Android 绘制优化
- 【第3章】局域网概述
- iOS 仿系统指南针
- 湖南北云科技有限公司2023届校园招聘简章
- python matlab 普朗克公式黑体光谱辐射出射度 绘图
- 不上架App Store怎么安装到非越狱苹果手机使用
- ubuntu16.04安装rtems
- STM32F103系列GPIO的一些基本概念和知识
热门文章
- Atitit 代码的导航 1.1.代码的层次导航 语句 函数方法 类 包 1.2.4.4. 代码可视化 流程图 一个方法内,多个代码行的关系图 语句to方法	2 1.3.4.5. 类图 类结构
- Atitit USRqc62204 证书管理器标准化规范
- Atitit 发帖机实现(1)-----UsrQBm2008 页面上下文规范
- Atitit 面向对象编程(OOP)、面向组件编程(COP)、面向方面编程(AOP)和面向服务编程(SOP)的区别和联系
- atitit.gui界面纵向居中总结
- paip.python pyqt 加载ui 方法使用connect总结attilax
- paip.PHP代码生成器比较
- (转)某期货系统漏洞致巨损二审在即 千万损失谁来买单?
- 一文读懂「云上企业级存储」
- 不装APP无法购物点餐开发票,这个“病”怎么治?