科学计算基础包——numpy

一、NumPy简介

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

1、NumPy的主要功能

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

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

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

2、安装和引用方法

  安装方法:pip3 install numpy

  引用方法:import numpy as np

3、为什么要用NumPy?

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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*
array([ 792.8221683 834.76057544,
        ....
       1279.50021845, 1106.64548622])

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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.7644115433.0791001156.09150886,
        ......
        34.7456133924.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 @   休耕  阅读(262)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示