如何解决比较两个数组并打印出python中的行索引
我有两个数组 A 和 B
merge
我想将 A[:,2:4] 的几个元素与 B[:,2:4] 的几个元素进行比较,并打印出它们相等或近似的行? 这是我仅针对 A[:,3]
的方法A = np.array([[9,10,11,12.0],[13 14 15 16.3]])
B = np.array([[1,2,3,4],[5,6,7,8],[9,12],[13,14,15,16],[17,18,19,20]])
如何同时使用 A[:,2] 和 A[:,3] ?
非常感谢
解决方法
我认为您正在寻找这样的东西:
import numpy as np
indexes_to_compare = range(2,4)
A = np.array([[9,10,11,12],[13,14,15,16.3]])
B = np.array([[1,2,3,4],[5,6,7,8],[9,16],[17,18,19,20]])
for a in A:
print(np.where(np.all(np.isclose(B[:,indexes_to_compare],a[indexes_to_compare],atol=0.5),axis=1))[0])
您将 B
与 A
的每一行进行比较,只考虑几个索引。
因此你:
- 使用
B
检查A
是否接近一行np.isclose(_)
(在选定的索引中) - 仅保留所有选定索引接近的行,使用
np.all(_,axis=1)
- 使用
np.where
获取此类行的索引
如果你想确保每个周期只输出一行B
,只需使用np.where(_)[0][0]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。