一、基础概念
NumPy是Python中用来进行数值计算和数据分析的一个基础库,它提供了许多高效的数组操作函数,支持不同维度的数组和矩阵运算。下面来详细介绍一下NumPy的用法。
二、安装与导入模块
因为该库不是Python的标准库,所以我们需要在命令行(cmd)执行以下命令来安装该库:
pip3 install numpy
之后我们进入python编译器或者vscode、pycharm等软件导入该库:
import numpy as np
三、创建NumPy数组
1、 一维数组(一组数据)
import numpy as np
a = np.array([1,2,3])
print(a)
运行结果是:
2、 多维数组(多个一组数据组合起来的数组)
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
运行结果是:
四、数组属性的获取
数组有很多属性值,包括数组的形状、数据类型、大小、维度和元素数等。通过以下属性可以获取数组的信息。
以下代码中将列出四种常用属性获取方法:
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
# 获取数组的形状
print(a.shape)
# 获取数组的数据类型
print(a.dtype)
# 获取数组的大小
print(a.size)
# 获取数组的维数
print(a.ndim)
我们看结果:
五、数组的修改和访问
可以用索引和切片来修改和访问数组的元素。
1、访问
我们用索引的方式来访问数组中的 ' 1 ':
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = a[0][0]
print(b)
运行结果是:
接下来使用切片的方式来访问 ' 1 ':
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = a[0][0:1:1]
print(b)
结果是:
2、修改
我们用索引的方式来将数组中的 ' 1 ' 修改成 ' 5 ':
只需要在访问的基础上加个 ' = ' 号,后面再加上一个数值就可以了
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
a[0][0] = 5
print(a)
结果是:
可以看到,数组中的元'1'已经修改成'5'了。但这种方法只能修改一个数值,接下来我们使用切片的方式来修改多个数值,将'1','2','3',修改成'5','5','5':
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
a[0][0:3:1] = 5
print(a)
结果是:
六、数组之间的运算
可以对数组进行各种数学运算,包括加减乘除等,并且可以进行广播运算和矩阵运算。
# 数组的加减乘除
import numpy as np
c = np.array([1, 2, 3])
d = np.array([4, 5, 6])
print(c + d)
print(c - d)
print(c * d)
print(c / d)
结果:
这种方式是矩阵运算的,c中元素1 与 d中元素4 对应 ,c中元素2 与 d中元素5 对应 ,余此类推。也就是说两个变量 的 数组、元素 数量必须一致。接下来我们看一下广播运算:
import numpy as np
e = np.array([1, 2, 3])
f = np.array([[4, 5, 6], [7, 8, 9]])
print(e + f)
看结果:
这种方式是对应的,1 对应 4,2 对应 5,3 对应 6 ,因为f是二维数组,所以结果返回两个数组,那么假设我们给e中再添加一个数组会怎样:
import numpy as np
e = np.array([[1, 2, 3],[1,1,1]])
f = np.array([[4, 5, 6], [7, 8, 9]])
print(e + f)
结果:
如果再给e中添加一个数组的话,再运行就会报错了。