zoukankan      html  css  js  c++  java
  • Python科学计算库Numpy

    Python科学计算库Numpy

    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

    1、简介

    Numpy是常用的科学计算库。

    NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。

    ndarray 对象是用于存放同类型元素的多维数组。

    使用array函数可以创建ndarray对象。

    numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
    

    参数说明:

    名称 描述
    object 数组或嵌套的数列
    dtype 数组元素的数据类型,可选
    copy 对象是否需要复制,可选
    order 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
    subok 默认返回一个与基类类型一致的数组
    ndmin 指定生成数组的最小维度

    array函数可以将python的数据类型装换为ndarray类型,如列表、字典、元组等。

    >>> import numpy as np
    
    >>> np.array([0,2,1])  #列表
    array([0, 2, 1])
    
    >>> np.array([[1,  2],  [3,  4]]) #列表
    array([[1, 2],
           [3, 4]])
    
    >>> np.array({"name":"tom",1:True}) #字典
    array({'name': 'tom', 1: True}, dtype=object)
    
    >>> np.array((1,3,0))          #元组        
    array([1, 3, 0])
    

    ndarray也有一些属性,如shape等。

    >>> l=np.array([1,2,3,4,5],dtype=int,ndmin=3) #获得一个ndarray
    >>>l
    >>>array([[[1, 2, 3, 4, 5]]])
    
    >>> l.shape=(5,1)  #控制形状
    >>> l
    array([[1],
           [2],
           [3],
           [4],
           [5]])
    
    

    2、属性

    ndarray有许多属性。

    ndarray.ndim 秩,即轴的数量或维度的数量
    ndarray.shape 数组的维度,对于矩阵,n 行 m 列
    ndarray.size 数组元素的总个数,相当于 .shape 中 n*m 的值
    ndarray.dtype ndarray 对象的元素类型
    ndarray.itemsize ndarray 对象中每个元素的大小,以字节为单位
    ndarray.flags ndarray 对象的内存信息
    ndarray.real ndarray元素的实部
    ndarray.imag ndarray 元素的虚部
    ndarray.data 包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。
    >>> l=np.array([1,2,3,4,5],dtype=int,ndmin=3) #获得一个ndarray
    >>>l
    >>>array([[[1, 2, 3, 4, 5]]])
    
    >>> l.shape=(5,1)  #控制形状
    >>> l
    array([[1],
           [2],
           [3],
           [4],
           [5]])
    
    >>> l.size #数量
    5
    
    >>> l.ndim  #秩
    2
    >>> l.flags  #信息
      C_CONTIGUOUS : True
      F_CONTIGUOUS : True
      OWNDATA : False
      WRITEABLE : True
      ALIGNED : True
      WRITEBACKIFCOPY : False
      UPDATEIFCOPY : False
    
    >>> l[4]  #通过索引可以访问
    array([5])
    >>>
    

    3、创建

    创建ndarray不仅仅有array函数,还要其他的一些函数。

    zeros,empty,ones系列

    这部分函数获取的ndarray都是按照特定元素来填充的。

    函数主要有这几个参数:

    参数 描述
    shape 数组形状
    dtype 数据类型,可选
    order 有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。
    >>> np.zeros([2,3]) #由0组成
    array([[0., 0., 0.],
           [0., 0., 0.]])
    
    >>> np.empty([3,2])  #随机
    array([[0., 0.],
           [0., 0.],
           [0., 0.]])
    
    >>> np.ones([3,1]) #全部由一组成
    array([[1.],
           [1.],
           [1.]])
    
    arange函数

    这个函数和range关键字功能类似。

    >>> np.arange(1,10,2) #1-10之间、以2为步长
    array([1, 3, 5, 7, 9])
    
    

    4、函数

    numpy提供了许多函数来辅助处理。

    如amin、amax、sort等算术函数。

    l=np.array([1,3,9,2,8,4,0,4,2])
    l.shape=(3,3)
    print(l)
    
    print("min: ",np.amin(l))
    print("max: ",np.amax(l))
    
    print(" axmin: ",np.min(l,1))
    print(" aymin: ",np.min(l,0))
    
    [[1 3 9]
     [2 8 4]
     [0 4 2]]
    min:  0
    max:  9
     axmin:  [1 2 0]
     aymin:  [0 3 2]
    

    5、IO

    numpy中的数组存入文件中以npy的后缀名。

    通过load和save系列函数进行存入与读取。

    import numpy as np
    
    a=np.arange(1,100,5)
    
    np.save("nd",a) #写入nd.npy中
    
    b=np.load("nd.npy") #从文件中加载处来
    print(b)
    
  • 相关阅读:
    JSP作业2017.4.5
    WEB(JSP)下的JDBC操作
    application下的JDBC操作(JSP应用与开发)
    JSP的指令inclue和动作include的区别
    大牛的博客
    seajs
    tomcat配置js压缩
    angular启动过程原理
    java并发编程
    为什么要定义interface和implements
  • 原文地址:https://www.cnblogs.com/cgl-dong/p/14142977.html
Copyright © 2011-2022 走看看