zoukankan      html  css  js  c++  java
  • Python——NumPy库入门

    1、数据的纬度

    维度:一组数据的组织形式

    1.1 一维数据

    一维数据由对等关系的有序或无序数据构成,采用线性方式组织 ,对应列表、数组和集合等概念 

    列表:数据类型可以不同 ,如 3.1413, 'pi', 3.1404, [3.1401, 3.1349], '3.1376' 

    数组:数据类型相同 。如:3.1413, 3.1398, 3.1404, 3.1401, 3.1349, 3.1376 

    1.2 二维数据

    二维数据由多个一维数据构成,是一维数据的组合形式。表格是典型的二维数据其中,表头是二维数据的一部分 。

    1.3 多维数据

    多维数据由一维或二维数据在新维度上扩展形成

    1.4 高维数据

    高维数据仅利用最基本的二元关系展示数据间的复杂结构

     

     

    2、NumPy的数组对象:ndarray

    NumPy是一个开源的Python科学计算基础库,包含:

    一个强大的N维数组对象 ndarray 

    广播功能函数

    整合C/C++/Fortran代码的工具

    线性代数、傅里叶变换、随机数生成等功能

    NumPySciPyPandas等数据处理或科学计算库的基础

    2.1 NumPy的引用

     

    2.2 N维数组对象:ndarray

    例:计算 A2+B3,其中,AB是一维数组 。

    def pysum():
            a=[0,1,2,3,4]
            b=[9,8,7,6,5]
            c=[]
            for i in range(len(a)):
                    c.append(a[i]**2+b[i]**3)
    
            return c
    print(pysum())
    

    利用python 已有的列表类型和循环的方法可以求出结果,但是程序繁琐。

    >>> print (npsum())
    None
    >>> import numpy as np
    >>> def npsum():
    	a=np.array([0,1,2,3,4])
    	b=np.array([9,8,7,6,5])
    	c=a**2+b**3
    	return c
    >>> print(npsum())
    [729 513 347 225 141]
    

    利用numpy方式编程,可以看出,并没有使用循环,更简洁。

    2.2.1  

     数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据

    设置专门的数组对象,经过优化,可以提升这类应用的运算速度

    观察:科学计算中,一个维度所有数据的类型往往相同

    数组对象采用相同的数据类型,有助于节省运算和存储空间

     

    ndarray是一个多维数组对象,由两部分构成:

    实际的数据

    描述这些数据的元数据(数据维度、数据类型等)ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始 

    2.2.2

    np.array()输出成[]形式,元素由空格分割 。

    8位(0或者1)组成一个字节。

    2.3 

    2.3.1ndarray数组的元素类型

    对比:Python语法仅支持整数、浮点数和复数3种类型

    科学计算涉及数据较多,对存储和性能都有较高要求

    对元素类型精细定义,有助于NumPy合理使用存储空间并优化性能

    对元素类型精细定义,有助于程序员对程序规模有合理评估

    2.3.2

    非同质的ndarray

    非同质ndarray对象无法有效发挥NumPy优势,尽量避免使用

    2.4 ndarray数组的创建

    创建方法

    Python中的列表、元组等类型创建ndarray数组

    使用NumPy中函数创建ndarray数组,如:arange, ones, zeros

    从字节流(raw bytes)中创建ndarray数组

    从文件中读取特定格式,创建ndarray数组 

    2.4.1 Python中的列表、元组等类型创建ndarray数组

    x = np.array(list/tuple)

    x = np.array(list/tuple, dtype=np.float32)

     

    2.4.2  使用NumPy中函数创建ndarray数组,如:arange, ones, zeros

     

     

     2.5 ndarray数组的变换

    2.5.1 纬度的变换

    a并没有发生变化

    a发生改变

    输出一维,但是a并没有发生变化

    2.5.2 ndarray数组的类型变换

    new_a = a.astype(new_type)

    2.5.3 ndarray数组向列表的转换

     ls = a.tolist()

     

    2.6 ndarray数组的操作

    数组的索引和切片

    索引:找到特定位置的数据

    切片:找到特定位置的一组数据

    一维数组的索引和切片:与Python的列表类似

     

    多维数组的索引:

    多维数组的切片:

     2.7 ndarray数组的运算

     2.7.1 数组与标量之间的运算

    2.7.2 NumPy一元函数

     2.7.3NumPy二元函数

     

     

     

     

  • 相关阅读:
    RN-Android构建失败:Caused by: org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'AwesomeProject'.
    Android更新包下载成功后不出现安装界面
    真机调试: The application could not be installed: INSTALL_FAILED_TEST_ONLY
    react native 屏幕尺寸转换
    Android Studio生成签名文件,自动签名,以及获取SHA1和MD5值
    React Native安卓真机调试
    git提交代码报错Permission denied, please try again
    The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
    命令行设置快捷命令
    Linux 常用指令
  • 原文地址:https://www.cnblogs.com/ruo-li-suo-yi/p/7711285.html
Copyright © 2011-2022 走看看