python - 逐行查找与二维数组条件匹配的元素索引
问题描述
我有一个带有浮点数的二维数组,称为 A,尺寸为 nx m。我有一个名为 B 的维数为 n 的一维浮点数组。对于 AI 中的每一行 i 想要找到小于 B 中第 i 个值的值的索引
我尝试使用 np.argwhere
A = np.array([[.1,.2,.3,.4], [.1,.2,.3,.4], [.1,.2,.3,.4]])
B = np.array([0.15, 0.25, 0.35])
np.argwhere(A.T < B)
这是输出
array([[0, 0],[0, 1],[0, 2],[1, 1],[1, 2],[2, 2]])
我想要的是这样的
[array([0,1,2]), array([1,2]), array([2])]
而且,当然,我希望它被矢量化而不是循环。
解决方案
使用np.where
+np.split
x, y = np.where(A.T < B)
s = np.flatnonzero(np.append([False], x[1:] != x[:-1]))
np.split(y, s)
[array([0, 1, 2], dtype=int64),
array([1, 2], dtype=int64),
array([2], dtype=int64)]
推荐阅读
- css - 使用 webpack 构建 .scss 时忽略某些文件(字体)
- java - Quarkus 原生应用程序的 AWS Lambda 处理程序
- python - 如何将 dict 列从 pyspark DF 转换/分解为行
- node.js - 如何使用 node js 在单个路由中使用两个不同的控制器
- java - SQLSyntaxErrorException 和如何使用 2 个参数调用 Get 方法?
- firebase - 使用 Firebase 实时数据库时删除自动生成的 ID
- html - 拆分字符串两次?在 HTML 控制 Powerapps
- kubernetes - 从 datadog agnet 中排除 pod
- python - Heroku 和 localhost/Jupyter Notebook 上相同模型的不同输出
- reactjs - 弃用警告:Gatsby-Source-Airtable 映射到文件节点