numpy - 如何按列比较二维数组和一维数组?
问题描述
我有两个 numpy 数组。其中一个是 2D,而另一个是 1D。
>>> a = np.arange(0,20).reshape(2,10)
>>> a
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]])
>>> b = np.full( a.shape[1], 10 )
>>> b
array([10, 10, 10, 10, 10, 10, 10, 10, 10, 10])
我想按列比较它们:
- 如果其中的列元素
a
与 b 的列元素相同,则存储 a 的行号。 - 否则,找到最接近的匹配项
a
并b
存储行号。
在我的示例中,比较的输出应该是:
[ 1, [0,1], [0,1], [0,1], [0,1], [0,1], [0,1], [0,1], [0,1], [0,1] ]
我如何在 NumPy 中做到这一点?
我在想用np.where( a==b, run a function to get row(s) if same, run another function to get row(s) of diff )
? 是这样吗?
解决方案
推荐阅读
- python-3.x - 在 IDE、python 路径上工作时出现 Anaconda / Pip ModuleNotFound 错误?
- java - java中的构造函数类型不匹配
- elasticsearch - Kibana 发现选项卡中未显示数据
- reactjs - 无法在 Netlify 开发代理 (React) 中获取数据
- c++ - 为什么我可以使用默认的 <=> 而不是用户提供的调用 ==?
- java - Spring Cache 不能用作计算属性
- javascript - Javascript模态在弹出窗口中传递动态变量取决于动态ID?
- c# - DataGridView HeaderCell 为数字类型时不显示值
- laravel - 在 laravel 项目中具有不同的引导程序版本
- c# - 与 Lambda 的 LINQ。总计的