zoukankan      html  css  js  c++  java
  • numpy学习:数据预处理

    待处理的数据:150*150的灰度图片,除分析目标外,背景已经抹0

    需要实现的目标:背景数字0不变,对其余数字做一个归一化处理

    对list处理可以用

    a=list(set(a)) # 实现了去除重复元素并排序

    对array处理可以用np.unique()这个函数,可以去除其中重复的元素,并按元素由大到小返回一个新的无元素重复的元组或者列表

    import numpy as np
    A = [1, 2, 2, 3, 4, 3]
    a = np.unique(A)
    print(a)            # 输出为 [1 2 3 4]
    a, b, c = np.unique(A, return_index=True, return_inverse=True)
    print(a, b, c)     # 输出为 [1 2 3 4], [0 1 3 4], [0 1 1 2 3 2]

    之后可以根据排序出的数组求得最大值与除0外的最小值,在线性归一化中还遇到一个问题,如果保留0值不动,只对非0元素做(x-min)/(max-min)变换

    发现一个函数非常适合了:np.where()

    img = (img-min)/(max-min)
    arr = np.where(img <= 1, img, 0)

    numpy.where(condition, [x, y])

    1、这里x,y是可选参数,condition是条件,这三个输入参数都是array_like的形式;而且三者的维度相同

    2、当conditon的某个位置的为true时,输出x的对应位置的元素,否则选择y对应位置的元素;

    3、如果只有参数condition,则函数返回为true的元素的坐标位置信息;

    今天还学到了一个新函数记录一下:

    np.maximum:(X, Y, out=None) 

    1、X 与 Y 逐位比较取其大者;

    2、最少接收两个参数

    总结:对numpy库还非常不熟悉,要慢慢学习。

  • 相关阅读:
    IO流(5)—缓冲流
    vue-element-admin 中文问题
    npm 下载慢解决方案
    fatal: unable to connect to github.com
    为什么有sessionStorage,localStorage等,还需要vuex
    vuex页面刷新数据丢失的解决办法
    Node中JWT的使用
    socket.io 实现长连接演示代码
    WebSocket 实现长连接演示代码
    jquery ajax上传文件
  • 原文地址:https://www.cnblogs.com/a-little-v/p/8762319.html
Copyright © 2011-2022 走看看