python - 检查数组是否是更大数组的一部分
问题描述
我正在尝试检查一维 numpy 数组是否是更大的二维数组的一部分。我可以用很多 for 循环来做到这一点,但我想有一种更 Pythonic 的方式来做到这一点。
我必须做的尝试:
1darray = np.array([0,0,0])
2darray = np.array([[0,0,1],[0,1,0],[1,0,0]])
1darray in 2darray
但是此代码返回True ,只要 1darray 中的元素之一出现在 2darray 中的某个位置。但我想检查整个数组是否是较大数组中的一行,所以我希望这段代码返回False,而我希望这段代码返回True:
1darray = np.array([0,0,1])
2darray = np.array([[0,0,1],[0,1,0],[1,0,0]])
1darray in 2darray
我将不胜感激任何帮助,谢谢!
解决方案
您可以使用any()
和all()
函数来实现这一点。
>>> a=np.array([0,0,0])
>>> b=np.array([[0,0,1],[0,1,0],[1,0,0]])
>>> (a == b).all(axis=1).any()
False
>>> a=np.array([0,0,1])
>>> b=np.array([[0,0,1],[0,1,0],[1,0,0]])
>>> (a == b).all(axis=1).any()
True
推荐阅读
- python - 将 numpy 解决方案转换为 dask(numpy 索引在 dask 中不起作用)
- go - Golang OpenAPI 3.0 oneOf 构造
- android - 获取街道上的航点而不是此处地图中的原始位置?
- asp.net-mvc - 查询此返回列表以仅显示特定人员的记录。ASP.NET MVC
- cross-validation - 应用交叉验证前的预处理功能,无泄漏
- c++ - 为什么我可以为引用文字的右值引用赋值?
- python - 安装stitch2d的问题
- javascript - D3v4 图形类,添加节点时遇到问题
- java - 有没有办法在包的类代码中访问 @Component 声明的服务属性?
- angular - 在材料选择中显示选定的值