zoukankan      html  css  js  c++  java
  • 科学计算基础包——numpy

    一、NumPy简介

      NumPy是高性能科学计算和数据分析基础包。它是pandas等其他各种工具的基础。

    1、NumPy的主要功能

      ndarray:一个多维数组结构,高效且节省空间

      无需循环对整组数据进行快速运算的数学函数

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

    2、安装和引用方法

      安装方法:pip3 install numpy

      引用方法:import numpy as np

    3、为什么要用NumPy?

    (1)例1:已知若干家跨国公司的市值(美元),将其换算为人民币。

      如果不使用NumPy,用如下方法实现:

    In [1]: import numpy as np                                                                                                                         
    
    In [2]: import random                                                                                                                              
    
    In [3]: a = [random.uniform(100.0, 200.0) for i in range(50)]   # 列表生成式,生成50个数字                                                         
    
    In [4]: a  
    Out[4]: 
    [116.59149533887626,
     122.75890815289081,
      ......
     188.16179683031413,
     162.74198326836913]
    
    In [5]: x = 6.8  # 假设前面列表中的数字都是美元,人民币兑换美元的汇率是6.8  
    
    In [8]: b = []   # 兑换为人民币列表  
    
    In [9]: for ele in a: 
       ...:     b.append(ele * x)                                                                                                                      
    
    In [10]: b   
    Out[10]: 
    [792.8221683043586,
     834.7605754396575,
     ...
     1279.5002184461362,
     1106.64548622491]
    

      如果使用NumPy实现如下:

    In [11]: a = np.array(a)                                                                                                                           
    
    In [12]: a                                                                                                                                         
    Out[12]: 
    array([116.59149534, 122.75890815, 
            .....
           188.16179683, 162.74198327])
    
    In [13]: x                                                                                                                                         
    Out[13]: 6.8
    
    In [14]: a*x  
    array([ 792.8221683 ,  834.76057544, 
            ....
           1279.50021845, 1106.64548622])
    

    (2)例2:已知购物车中每件商品的价格与商品件数,求总金额。

    In [18]: a = [random.uniform(10.0, 20.0) for i in range(50)]   # 列表生成式,生成50个商品的价格10-20元之间                                         
    
    In [19]: b = [random.randint(1, 10) for i in range(50)]   # 列表生成式,生成50种商品的件数                                                         
    
    In [20]: a = np.array(a)                                                                                                                           
    
    In [21]: b = np.array(b)                                                                                                                           
    
    In [22]: a*b    # a列表与b列表每一项相乘  
    Out[22]: 
    array([ 88.1730442 , 169.76441154,  33.07910011,  56.09150886,
            ......
            34.74561339,  24.47704958])
    
    In [23]: (a*b).sum()     # 每一项总和,即所有商品的金额总和                                                                                                                          
    Out[23]: 4583.086649099101
    

    二、ndarray——多维数组对象

      创建ndarray:np.array(array_like)

    1、注意数组与列表的区别

    • 数组对象内的元素类型必须相同
    • 数组大小不可修改(这与内存结构有关)

    2、ndarray——常用属性

    (1)T:数组的转置(对高维数组而言)

    (2)size:数组元素的个数

    (3)ndim:数组的维数

    (4)shape:数组的维度大小(元组形式)

    (5)dtype:数组元素的数据类型

    3、ndarray——数据类型

    (1)布尔型:bool_

    (2)整型:int_  int8  int16  int32  int64

    (3)无符号整型:uint8  uint16 uint32  uint64

    (4)浮点型:float_  float16  float32  float64

    (5)复数型:complex_  complex64  complex128

  • 相关阅读:
    Python开发环境搭建(Windows)
    Pycharm安装第三方库
    Python 更新pip报错:Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问
    centos7.4 yum install报错:Another app is currently holding the yum lock; waiting for it to exit...
    [PySide]在简易在线词典中使用多线程
    三菱PLC——Dx Developer的使用
    关于BeautifulSoup编码的一些问题
    超简单的Ghost安装双系统方法
    《Visual C++ 2008入门经典》学习笔记(1)——数据类型
    win下硬盘安装ubuntu(无需光驱、U盘)
  • 原文地址:https://www.cnblogs.com/xiugeng/p/9741130.html
Copyright © 2011-2022 走看看