科学计算基础包——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

 

posted @ 2018-10-03 22:36  休耕  阅读(252)  评论(0编辑  收藏  举报