• Numpy


    NumPy是使用Python进行科学计算的基本软件包。它包含以下内容:

    • 强大的N维数组对象

    • 复杂的(广播)功能

    • 集成C / C ++和Fortran代码的工具

    • 有用的线性代数,傅立叶变换和随机数功能

    除了其明显的科学用途外,NumPy还可以用作通用数据的高效多维容器。可以定义任意数据类型。这使NumPy能够无缝,快速地与各种数据库集成。

    NumPy是Python中科学计算的基本软件包。它是一个Python库,提供多维数组对象,各种派生对象(例如蒙版数组和矩阵)以及各种例程,用于对数组进行快速操作,包括数学,逻辑,形状处理,排序,选择,I / O ,离散傅立叶变换,基本线性代数,基本统计运算,随机模拟等等。

    NumPy包的核心是ndarray对象。这封装了均匀数据类型的n维数组,为了提高性能,许多操作都在编译后的代码中执行。NumPy数组和标准Python序列之间有几个重要区别:

    • NumPy数组在创建时具有固定的大小,这与Python列表(可以动态增长)不同。更改ndarray的大小将创建一个新数组并删除原始数组。

    • NumPy数组中的所有元素都必须具有相同的数据类型,因此在内存中的大小将相同。例外:一个对象可以具有(Python,包括NumPy)对象的数组,从而允许数组具有不同大小的元素。

    • NumPy数组有助于对大量数据进行高级数学运算和其他类型的运算。通常,与使用Python的内置序列相比,此类操作可以更高效地执行,并且代码更少。

    • 越来越多的基于Python的科学和数学软件包都使用NumPy数组。尽管这些通常支持Python序列输入,但它们会在处理之前将此类输入转换为NumPy数组,并且通常会输出NumPy数组。换句话说,为了有效地使用很多(也许甚至是大多数)当今基于科学/数学的Python的软件,仅仅知道如何使用Python的内置序列类型是不够的-人们还需要知道如何使用NumPy数组。

     Numpy创建图形以及open_cv知识点补充

     

    import numpy as np
    import cv2 as cv
    
    
    def access_pixels(image):
        print(image.shape)  #获取图片的详细信息(height,width,channels)
        height = image.shape[0] #索引为0表示height
        width = image.shape[1]  #索引为1表示width
        channels = image.shape[2]  #索引为2表示channels
        print("height : %s , width : %s , channels : %s" %(height,width,channels))
        for h in range(height): #获取height 像素
            for w in range(width):
                for c in range(channels):
                    pv = image[h,w,c]  #获取图像的二维数组
                    image[h,w,c] = 255-pv  #修改图像的二维数组
        cv.imshow("edit_image",image) #显示修改后的图像
    
    
    def create_image():
        """
        img = np.zeros([400,400,3] , np.uint8 )  #设置图片的格式 height,width, channels
        img[:,:,0] = np.ones([400,400],) * 255
        img[:, :,1] = np.ones([400, 400], ) * 255
        img[:, :,2] = np.ones([400, 400], ) * 255
        cv.imshow("create_image",img)
        """
        #单通道 灰度图像
        # img = np.zeros([400,400,1],np.uint8)
        img= np.ones([400,400,1],np.uint8) * 127
        cv.imshow("dtd_img",img)
    def inverse(img):
    dst = cv.bitwise_not(img) #照片反选相比access_pixels速度快
    cv.imshow("kui",dst)
    src = cv.imread("./01.jpg") #rgb cv.imshow("numpy_date",src) t1 = cv.getTickCount() # access_pixels(src) create_image() t2 = cv.getTickCount() time = (t2-t1)/cv.getTickFrequency() print("Time : %s ms" %(time*1000)) cv.waitKey(0) cv.destroyAllWindows()
    调用access_pixels() 

                                          

    def inverse(img):
    dst = cv.bitwise_not(img) #照片反选相比access_pixels速度快
    cv.imshow("kui",dst)
  • 相关阅读:
    中文分词学习整理
    机器学习
    TimSort学习资料
    小段子
    Load和CPU利用率是如何算出来的
    sql server xml 截断
    System.Security.Cryptography.CryptographicException: 系统找不到指定的文件
    优化笔记: jxrsfxrxx_D_20140916.gz
    优化笔记: 此两个产品每天8点30分开始,要跑一个小时,看看是否有提升空间
    优化笔记:pfyhparopenfundinfotest_D_20140916.gz
  • 原文地址:https://www.cnblogs.com/wqzn/p/12356933.html
Copyright © 2020-2023  润新知