ShiC的自习室 2022-10-06 00:32 采纳率: 50%
浏览 35
已结题

python如何根据阈值选择数据?

Python如何根据阈值选择数据?

我在下面有一个数组:
a=np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1])
我想要的是在此向量上用阈值选择数据。

问题1:以threshold=8为例,大于等于8的元素保留,小于8为0。
输出向量应该是这样的:
a_output = [0, 0, 0, 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 0,]

问题2:以threshold=8为例,大于等于8的元素保留,并且向两边扩展保留两个数据,小于8为0。
输出向量应该是这样的:
a_output = [0, 0, 0, 0, 0, 6, 7, 8, 9, 8, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 8, 7, 6, 0, 0, 0, 0, 0,]

(希望能获得解答,不知道我的表述是否清晰)

  • 写回答

1条回答 默认 最新

  • ·星辰大海 2022-10-06 10:11
    关注
    
    from hashlib import new
    import numpy as np
    
    a=np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1])
    threshold=8
    a_output=np.copy(a)
    a[np.where(a_output<threshold)]=0
    print(a_output)
    index=np.where(a>=threshold)[0]
    new_index=set()
    for i in index:
        for j in range(i-2,i+3):
            new_index.add(j)
    a_output=np.array([a[i] if i in new_index else 0 for i in range(len(a))])
    print(a_output)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 创建了问题 10月6日

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系