文章目录
前言
本文就主要讲解下numpy的安装和简单使用,后续会完善numpy的使用方法
提示:以下是本篇文章正文内容,下面案例可供参考
一、numpy是什么?
NumPy(Numerical Python的简称),是科学计算基础的一个库,它提供了一个高性能的多维数组对象ndarray,以及大量的库函数和操作,可以帮助程序员轻松地进行数值计算,广泛应用于机器学习模型、图像处理和计算机图形学、数学任务等领域。提供了大量关于科学计算的相关功能,例如,线性变换,数据统计,随机数生成等。其提供的最核心的类型为多维数组类型(ndarray)。
NumPy是基于c语言开发,所以这使得NumPy的运行速度很快,高效率运行就是NumPy的一大优势。Numpy对矩阵运算进行了优化,使我们能够高效地执行线性代数运算,使其非常适合解决机器学习问题。SciPy(Scientific Python)、Mat-plotlib(plotting library)、Scikit-learn 等都在一定程度上依赖NumPy。与Python列表相比,Numpy具有的另一个强大优势是具有大量优化的内置数学函数。这些函数使你能够非常快速地进行各种复杂的数学计算,并且用到很少代码(无需使用复杂的循环),使程序更容易读懂和理解。
- numpy的底层使用C语言实现。所以效率挺高
- numpy作为很多的用来做数据挖掘,数据分析,人工智能相关的技术组件的底层实现
NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型,它是描述相同类型的元素集合。ndarray 中的每个元素都是数据类型对象(dtype)的对象。ndarray 中的每个元素在内存中使用相同大小的块。
Numpy官网:https://numpy.org/
1、Numpy的数据结构
Numpy中定义的最重要的数据结构是称为ndarray的n维数组类型,这个结构引用了两个对象,一块用于保存数据的存储区域和一个用于描述元素类型的dtype对象。
- 第一部分:元数据部分,存储当前这个ndarray对象的一些描述数据
- 第二部分:真实数据部分,存储这个ndarray对象中存储的真实的数据
二维数组的生成在python中我们还可以用到list列表,如果用list来表示[1,2,3],由于list中的元素可以是任何对象,所以list中保存的是对象的指针,如果要保存[1,2,3]就需要三个指针和三个整数对象,是比较浪费内存资源和cpu计算时间的,而ndarray是一种保存单一数据类型的多维数组结构,在数据处理上比list列表要快上很多,在这里我们可以用%timeit命令来检测两者的数据处理速度。
1.1 元数据(metadata)
存储对目标数组的描述信息,如:dim count、dimensions、dtype、data(实际上就是一个指针,指向实际的数据)等。
1.2 实际数据
完整的数组数据
将实际数据与元数据分开存放,一方面提高了内存空间的使用效率,另一方面减少对实际数据的访问频率,提高性能。
2、ndarray数组对象的特点
- Numpy数组是同质数组,即所有元素的数据类型必须相同
- Numpy数组的下标从0开始,最后一个元素的下标为数组长度减1
3、Numpy的优点
- Numerical Python,数值的Python,补充了Python语言所欠缺的数值计算能力。
- Numpy是其它数据分析及机器学习库的底层库。
- Numpy完全标准C语言实现,运行效率充分优化。
- Numpy开源免费。
二、安装numpy
1、Anaconda
conda install numpy
2、没有anaconda,则使用以下命令在终端中直接输入
pip install numpy
三、开始使用
3.1 引入库
代码如下(示例):
#导入numpy并为其取别名为np
import numpy as np
3.2 查看numpy安装版本
代码如下(示例):
print(np.__version__)
3.3 牛刀小试
# 引入第三方库:numpy,起个别名:np
import numpy as np
print(np.__version__)
#调用numpy中的arange函数生成一个序列
data = np.arange(10) # 生成0-9的数据序列
print(data) #打印数据
print(type(data)) # 打印数据类型
3.4 numpy VS list
import numpy as np
# 对于序列0-9在python中使用list对其每个元素都进行+1操作
list1 = list(range(10))
print(list1)
# 把这个数据序列(0-9)的每个元素都 进行 + 1 的操作
result_list = []
for i in list1:
result_list.append(i + 1)
print(result_list)
# numpy中的实现
data = np.arange(10)
print(data)
data += 1 # 输出结果: 每个元素都 + 1
print(data)
总结
1、numpy安装很简单,易操作
2、使用numpy进行数组计算,要比使用原生的python的操作要简单很多