引言
我们想通过Python去学习人工智能,不可避免地要对大量的数据进行操作。在大批量的数据处理下,如果只是人为手动地修改数据信息,未免效率太低。今天我们就来介绍数据科学领域当中至关重要的一个库:Numpy
通过阅读本篇博客,你可以:
1.了解什么是Numpy
2.掌握如何使用Numpy创建数组
一、Numpy的定义与概述
Numpy(Numerical Python)是科学计算基础库,提供大量科学计算相关功能,比如数据统计、随机数生成等等。其提供的最核心类型是多维数组类型(ndarray),它能够支持大量的维度数组与矩阵运算,Numpy支持向量处理ndarray对象,提高程序运算速度。
在学习人工智能时,掌握Numpy是非常重要的。以下是一些关键原因:
1.高效的数组操作:NumPy 提供了高效的多维数组(ndarray
)对象,可以进行快速的数学运算和数据处理。这种数组比 Python 原生的列表要高效得多,特别是在处理大量数据时。
2.广泛应用:许多机器学习和深度学习库(如 TensorFlow、PyTorch、Scikit-Learn)都依赖于 NumPy,尤其是在底层实现中。掌握 NumPy 有助于你理解这些库的工作原理。
3.数学运算:NumPy 提供了许多数学函数和线性代数运算,比如矩阵乘法、特征值分解等,这些在机器学习算法和数据分析中经常用到。
4.数据预处理:在进行数据分析和预处理时,NumPy 的功能可以帮助你对数据进行有效的操作和转换,为后续的模型训练和分析做好准备。
5.性能:NumPy 是用 C 语言编写的,因此它在执行数值运算时比纯 Python 代码要快得多,这在处理大规模数据时尤为重要。
总结:NumPy 是数据科学和机器学习的基础工具之一,掌握它可以帮助你更好地理解和处理数据,从而提升你的人工智能项目的效率和效果。
二、Numpy环境搭建
首先,我们先下载环境,在我们的电脑终端或者Anaconda中输入指令:
pip install numpy
这样我们就将Numpy这个库安装在了本地。我们就可以在解释器中导入Numpy库并且使用它。
import numpy as np
我们通常将numpy导入后将其命名为np,这样的操作更方便之后的使用。
三、Numpy中数组的创建
1.np.arange()的创建
numpy模块中的arange函数可以通过传入数值范围并返回ndarray对象的方式创建数组。
np.arange()的语法格式如下:
np.arange(start=0,stop,step=1,dtype)
①start:序列的起始值。生成的数组将从这个值开始,默认为0。
②stop:序列的终止值。生成的数组将包括小于 stop 的所有值。
③step:步长,表示两个相邻值之间的差距,默认为 1。如果 step 为负数,start 必须大于 stop。
④dtype:指定元素的数据类型。如果不提供数据类型的话,它会自动识别。
以下是部分参数的示例:
import numpy as np
# 生成从 0 到 9 的整数数组
a = np.arange(10)
print(a) # [0 1 2 3 4 5 6 7 8 9]
# 生成从 1 到 9 的整数数组
b = np.arange(1, 10)
print(b) # [1 2 3 4 5 6 7 8 9]
# 生成从 1 到 9 的步长为 2 的整数数组
c = np.arange(1, 10, 2)
print(c) # [1 3 5 7 9]
# 生成从 1 到 2 的浮点数数组,步长为 0.1
d = np.arange(1, 2, 0.1)
print(d) # [1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9]
# 指定数据类型为浮点数
e = np.arange(1, 5, dtype=np.float64)
print(e) # [1. 2. 3. 4.]
2.np.array()的创建
numpy模块中的array函数可以生成多维数组。比如我们要生成一个二维数组,就需要像array函数传递一个列表类型的参数。每一个列表是一维的ndarray类型数组,作为二维数组的行。
np.array()的语法格式如下:
np.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0)
①object:要转换为数组的对象。可以是列表、元组、列表的列表等各种可以转化为数组的对象。
②dtype:指定元素的数据类型。如果不提供数据类型的话,它会自动识别。
③copy:布尔值,是否复制数据。默认是True,就是会创建数据的副本。
④order:字符类型的选项,可以用于指定多维数组的存储顺序。“C”是行优先顺序,“F”是列方向顺序,默认是“A”(实际就是行优先顺序)。
⑤subok:布尔值,表示是否返回子类的数组。如果设置为 True,那么如果输入对象是某个子类的实例,返回的数组会是该子类的实例。默认为 False,返回的是标准的 ndarray 对象。
⑥ndmin:整数,指生成数组的最小维度。如果输入的对象维度不足ndmin,则会自动扩展到ndmin维度。
以下是部分参数的示例:
import numpy as np
# 从列表创建一维数组
a = np.array([1, 2, 3, 4])
print(a) # [1 2 3 4]
# 从嵌套列表创建二维数组
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
# [[1 2 3]
# [4 5 6]]
# 指定数据类型
c = np.array([1, 2, 3], dtype=np.float64)
print(c) # [1. 2. 3.]
# 指定存储顺序
d = np.array([[1, 2], [3, 4]], order='F')
print(d) # [[1 3]
# [2 4]]
# 指定最小维数
e = np.array([1, 2, 3], ndmin=2)
print(e) # [[1 2 3]]
关注我,内容持续更新(后续内容在作者专栏《从零基础到AI算法工程师》持续更新)!!!