科学计算基础包——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 * x 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.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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术