python实现区间转换、numpy图片数据转换

需求:

客户的需求是永无止境的,这不?前几天,用户提出了一个需求,需要将一组数据从一个区间缩放到另一区间?

思路:

先将数据归一化,再乘以对应区间的差加上对于区间下限。

数据归一化的公式:

  1. # 区间变换
  2. def unification_interval(data,interval_min,interval_max):
  3. # data :需要变换的数据或矩阵
  4. # interval_min :变换区间下限。
  5. # interval_max :变换区间上限。
  6. import numpy as np
  7. data = np.array(data)
  8. n,m = data.shape
  9. minval = np.min(np.min(data))
  10. maxval = np.max(np.max(data))
  11. for i in range(n):
  12. for j in range(m):
  13. data[i,j] = (data[i,j]-minval)/(maxval-minval)
  14. return data*(interval_max-interval_min)+interval_min
  1. # 整形的转换
    def Inter(data):
  2. import numpy as np
  3. data = np.array(data)
  4. n,m = data.shape
  5. for i in range(n):
  6. for j in range(m):
  7. data[i,j] = int(data[i,j])
  8. return data
  1. # coding:utf-8
  2. import pandas as pd
  3. import numpy as np
  4. import matplotlib.pyplot as plt
  5. from scipy.misc import imresize
  6.  
  7. # 区间变换
  8. def unification_interval(data,interval_min,interval_max):
  9. # data :需要变换的数据或矩阵
  10. # interval_min :变换区间下限。
  11. # interval_max :变换区间上限。
  12. import numpy as np
  13. data = np.array(data)
  14. n,m = data.shape
  15. minval = np.min(np.min(data))
  16. maxval = np.max(np.max(data))
  17. for i in range(n):
  18. for j in range(m):
  19. data[i,j] = (data[i,j]-minval)/(maxval-minval)
  20. return data*(interval_max-interval_min)+interval_min
  21.  
  22. def Inter(data):
  23. import numpy as np
  24. data = np.array(data)
  25. n,m = data.shape
  26. for i in range(n):
  27. for j in range(m):
  28. data[i,j] = int(data[i,j])
  29. return data
  30.  
  31. # 图片读入
  32. img_data = pd.read_csv('./data/milliq.csv',header=0,index_col=0,sep=',')
  33. # print(np.max(np.max(img_data)))
  34. # print(np.min(np.min(img_data)))
  35.  
  36. data = Inter(img_data)
  37.  
  38. imgData = unification_interval(data,0,255)
  39.  
  40. # print(np.max(np.max(imgData)),np.min(np.min(imgData)))
  41.  
  42. data = imresize(data,[200,200])
  43.  
  44. plt.imshow(data,cmap='gray')
  45. plt.show()

关于数据区间变换及numpy数组转图片数据的python实现的更多相关文章

  1. Python+OpenCV图像处理(三)—— Numpy数组操作图片

    一.改变图片每个像素点每个通道的灰度值 (一) 代码如下: #遍历访问图片每个像素点,并修改相应的RGB import cv2 as cv def access_pixels(image): prin ...

  2. delphi中如何将string类型的字符串数据转化成byte[]字节数组类型的数据

    var  S:String;  P:PChar;  B:array of Byte;begin  S:='Hello';  SetLength(B,Length(S)+1);  P:=PChar(S) ...

  3. Python numpy 中常用的数据运算

    Numpy 精通面向数组编程和思维方式是成为Python科学计算大牛的一大关键步骤.——<利用Python进行数据分析> Numpy(Numerical Python)是Python科学计 ...

  4. Numpy入门(二):Numpy数组索引切片和运算

    在Numpy中建立了数组或者矩阵后,需要访问数组里的成员,改变元素,并对数组进行切分和计算. 索引和切片 Numpy数组的访问模式和python中的list相似,在多维的数组中使用, 进行区分: 在p ...

  5. matplotlib数组转图片的一些坑

    最近用matplotlib遇到了一些坑,记录一下. 图片转数组 import matplotlib.pyplot as plt im_file='test_image.jpg' img=plt.imr ...

  6. numpy 中的reshape,flatten,ravel 数据平展,多维数组变成一维数组

    numpy 中的reshape,flatten,ravel 数据平展,多维数组变成一维数组 import numpy as np 使用array对象 arr1=np.arange(12).reshap ...

  7. NumPy 基于已有数据创建数组

    原文:Python Numpy 教程 章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基 ...

  8. python : 将txt文件中的数据读为numpy数组或列表

    很多时候,我们将数据存在txt或者csv格式的文件里,最后再用python读取出来,存到数组或者列表里,再做相应计算.本文首先介绍写入txt的方法,再根据不同的需求(存为数组还是list),介绍从tx ...

  9. NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构

    本文摘自<用Python做科学计算>,版权归原作者所有. 上一篇讲到:NumPy-快速处理数据--ndarray对象--数组的创建和存取 接下来接着介绍多维数组的存取.结构体数组存取.内存 ...

随机推荐

  1. [转帖] Linux buffer 和 cache相关内容

    Linux中Buffer/Cache清理 Lentil2018年9月6日 Linux中的buff/cache可以被手动释放,释放缓存的代码如下: https://lentil1016.cn/linux ...

  2. Qt之美(一):d指针/p指针详解(解释二进制兼容,以及没有D指针就会崩溃的例子。有了D指针,所使用的对象大小永远不会改变,它就是该指针的大小。这个指针就被称作D指针)good

    Translated  by  mznewfacer   2011.11.16 首先,看了Xizhi Zhu 的这篇Qt之美(一):D指针/私有实现,对于很多批评不美的同路人,暂且不去评论,只是想支持 ...

  3. iframe & cors

    iframe & cors <!DOCTYPE html> <html lang="zh-Hans"> <head> <meta ...

  4. static关键字的总结

    C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. 1.面向过程设计中的st ...

  5. Qt——数据库编程

    一.概述 Qt提供了一个类似JDBC的数据库接口,需要为每个可以连接的特定数据库提供驱动程序,可以通过 QStringList QSqlDatabase::drivers() 知道当前版本的Qt哪些驱 ...

  6. Hive权限管理

    最近遇到一个hive权限的问题,先简单记录一下,目前自己的理解不一定对,后续根据自己的理解程度更新 一.hive用户的概念 hive本身没有创建用户的命令,hive的用户就是Linux用户,若当前是用 ...

  7. 【转载】dfs序七个经典问题

    作者:weeping 出处:www.cnblogs.com/weeping/ 原文链接 https://www.cnblogs.com/weeping/p/6847112.html 参考自:<数 ...

  8. linux内核分析 第六周 分析Linux内核创建一个新进程的过程

    进程的描述 操作系统的三大管理功能:进程管理.内存管理.文件系统 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. 进程控制块PCB task_struct:进 ...

  9. echarts彩虹柱状图 每个bar显示不同颜色, 标题在不同位置 ,工具中有可以直接保存为图片下载,平均线的添加

    可以参考: https://echarts.baidu.com/echarts2/doc/example.html https://echarts.baidu.com/echarts2/doc/doc ...

  10. ab输出信息解释以及Failed requests原因分析

    ab是apache自带的压力测试工具.ab进行的一切测试本质上是基于HTTP的.下面是对ab输出项信息的解释和出现Failed requests原因分析.测试实例:1. ab输出信息说明:   1 2 ...