a5建站,动漫做a视频网站,网站空间不续费,网站建设 淘宝描述psd一、numpy介绍
1、numpy 数值计算库 num - numerical 数值化的 py - python
2、numpy是一个开源的python科学计算库#xff0c;用于快速处理任意维度的数组 numpy支持常见的数组和矩阵操作。对于同样的数值计算任务#xff0c;使用numpy比直接使用python要简洁的多 numpy使…一、numpy介绍
1、numpy 数值计算库 num - numerical 数值化的 py - python
2、numpy是一个开源的python科学计算库用于快速处理任意维度的数组 numpy支持常见的数组和矩阵操作。对于同样的数值计算任务使用numpy比直接使用python要简洁的多 numpy使用ndarray对象来处理多维数组该对象是一个快速而灵活的大数据容器
二、ndarray介绍
1、numpy提供了一个n维数组类型ndarry它描述了相同类型的items的集合
2、ndarray n - 任意个 d - dimension 维度 array - 数组
3、用numpy存储
import numpy as npscore np.array([[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81],
[90, 94, 78, 67, 74],
[91, 91, 90, 67, 69],
[76, 87, 75, 67, 86],
[70, 79, 84, 67, 84],
[94, 92, 93, 67, 64],
[86, 85, 83, 67, 80]])score 三、ndarray与python原生list运算效率对比
1、使用python列表可以存储一维数组通过列表的嵌套可以实现多维数组那么为什么还需要使用numpy的dnarray呢
2、我们通过一段代码运行来体会到ndarray的好处
# ndarray与python原生list运算效率对比
import random
import time
import numpy as np# 生成一个大数组
a []
for i in range(100000000):a.append(random.random())# 原生python list求和
t1 time.time()
sum1 sum(a)
t2 time.time()# ndarray求和
b np.array(a)
t4 time.time()
sum3 np.sum(b)
t5 time.time()print(t2-t1, t5-t4) 时间相差近6倍
3、从中我们看到ndarray的计算速度要快很多节约了时间
4、机器学习的最大特点就是大量的数据运算那么如果没有一个快速的解决方案那可能现在python也在机器学习领域达不到好的效果
5、numpy专门针对ndarray的操作和运算进行了设计所以数组的存储效率和输入输出性能远优于python中的嵌套列表数组越大numpy的优势就越明显
四、ndarray的优势
1、内存块存储风格 ndarray - 相同类型通用性差 list - 不同类型通用性强
从图中我们可以看出ndarray在存储数据的时候数据与数据地址都是连续的这样就给使得批量操作数据元素的速度更快
这时因为ndarray中的所有元素的类型都是相同的而python列表中的元素类型是任意的所以ndarray在存储元素时内存可以连续而python原生list就只能通过寻址方式找到下一个元素这虽然也导致了在通用性方面ndarray不及python原生list但是在科学计算中ndarray就可以省掉很多循环语句代码使用方面比python原生list简单的多
2、并行化运算 ndarray支持并行化运算向量化运算
3、底层语言 numpy底层使用C语言编写内部解除了GIL全局解释器锁其对数组的操作速度不受python解释器的限制效率远高于纯python代码