数据分析基础之《numpy(1)—介绍》

一、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存储

python 复制代码
import numpy as np

score = 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的好处

python 复制代码
# 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代码

相关推荐
Aloudata5 分钟前
数据工程实践:NoETL 指标平台落地周期与人力投入深度测算
数据分析·etl·指标平台
善木科研喵1 小时前
IF5.9分,α-硫辛酸如何缓解化疗神经毒性?网络毒理学结合网络药理学双重锁定关键通路!
数据库·数据分析·r语言·sci·生信分析·医学科研
不剪发的Tony老师2 小时前
Chartbrew:一个开源的数据可视化平台
sql·数据分析·可视化
2501_943695332 小时前
大专统计与会计核算专业,怎么积累财务数据分析的案例?
数据挖掘·数据分析
Aloudata3 小时前
NoETL 指标平台如何保障亿级明细查询的秒级响应?——Aloudata CAN 性能压测深度解析
数据库·数据分析·自动化·指标平台
CodeCraft Studio4 小时前
【电子行业案例】借助LightningChart 实现高精密电子制造数据实时可视化
信息可视化·数据分析·制造·lightningchart·电子制造·制造数据可视化·高性能图表库
-To be number.wan5 小时前
为什么 pyecharts 在 Jupyter Notebook 里显示空白?
ide·python·jupyter·数据分析
BYSJMG5 小时前
计算机毕设推荐:基于大数据的各省碳排放数据分析与可视化系统实战
大数据·vue.js·hadoop·后端·信息可视化·数据分析·课程设计
BYSJMG5 小时前
大数据分析案例:基于大数据的肺癌数据分析与可视化系统
java·大数据·vue.js·python·mysql·数据分析·课程设计
Aloudata19 小时前
数据工程视角:指标平台选型深度对比(BI 指标中心 vs 传统 vs Headless vs 自动化平台)
数据分析·自动化·数据治理·指标平台·noetl