如何使用特定规则在Python中逐元素地比较两个数组?

 CHEN--MIN--珊 发布于 2023-02-13 18:29

比方说我有:

numpy.random.seed(20)
a=numpy.random.rand(5000)
b=numpy.random.rand(5000)

我想获得一个位置的索引a[x] > b[x],即所有x的索引

此外,我想得到一个指数(a[x-1] < b[x-1]) && (a[x] > b[x]).

有人可以帮忙吗?我有一种感觉,我必须使用蒙面数组,但我不知道如何.

1 个回答
  • 首先是直截了当的,使用numpy.where:

    >>> numpy.where(a>b)
    (array([   0,    1,    2, ..., 4993, 4994, 4999]),)
    

    对于第二个,你可以开始

    >>> np.where((a>b) & (np.roll(a, 1) < np.roll(b, 1)))
    (array([   5,    9,   17, ..., 4988, 4991, 4999]),)
    

    但你必须分开处理角落案件.

    再一次,@ askewchan得到了正确的表达式第二,而我没有正确添加1 :)

    >>> np.where((a[1:] > b[1:]) & (a[:-1] < b[:-1]))[0] + 1
    array([   5,    9,   17, ..., 4988, 4991, 4999])
    

    2023-02-13 18:31 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有