NumPy是Python中一个用于科学计算的开源模块,提供了多维数组对象和一系列用于处理数组的函数库。它可以让用户更加方便地进行数据处理、数值分析和科学计算等任务。NumPy中的数组实现了向量化操作,可以使用广播等方式进行高效的数值计算。另外,NumPy还提供了线性代数、傅里叶变换、随机数生成等多种功能。
使用NumPy之前,请确保已经安装了NumPy模块。
安装方法:pip install numpy
导入NumPy模块
我们可以使用import语句导入NumPy模块,并给模块指定别名:
import numpy as np
创建数组
NumPy的核心是多维数组,可以通过下面的方式创建:
1、numpy.array()函数
这是NumPy中最重要的函数之一,它用于创建数组。对于一维数组,可以传递一个列表或元组作为参数。对于多维数组,可以传递多个列表作为参数。下面是一些示例:
import numpy as np
# 一维数组
a = np.array([1, 2, 3])
print(a)
# 多维数组
b = np.array([[1,2,3], [4,5,6]])
print(b)
输出结果:
[1 2 3]
[[1 2 3]
[4 5 6]]
2、numpy.arange()函数
numpy.arange()函数用于创建一个一维数组,其中从开始到结束的数字会以指定的步长增加。下面是一个示例:
import numpy as np
# 创建一个一维数组,从0到7,间隔为2
a = np.arange(0, 7, 2)
print(a)
输出结果:
[0 2 4 6]
3、numpy.zeros()函数和numpy.ones()函数
numpy.zeros()函数用于创建一个给定形状和类型的全零数组。numpy.ones()函数用于创建一个给定形状和类型的全1数组。下面是一些示例:
import numpy as np
# 创建一个形状为(2,3)的全零二维数组
a = np.zeros((2,3))
print(a)
# 创建一个形状为(2,3)的全1二维数组
b = np.ones((2,3))
print(b)
输出结果:
[[0. 0. 0.]
[0. 0. 0.]]
[[1. 1. 1.]
[1. 1. 1.]]
数组属性
在NumPy中,数组的属性指的是数组的一些元数据,例如数组的形状、大小等。代码示例如下:
import numpy as np
a = np.array([[1,2,3], [4,5,6]])
# 数组的形状
print(a.shape)
# 数组的大小
print(a.size)
# 数组的维度
print(a.ndim)
输出结果:
(2, 3)
6
2
数组索引和切片
NumPy数组的索引方式和Python的列表类似,可以使用方括号和整数、切片的方式对数组中的元素进行访问。代码示例如下:
import numpy as np
a = np.array([1,2,3])
# 访问第一个元素
print(a[0])
# 切片访问
print(a[1:3])
b = np.array([[1,2,3], [4,5,6], [7,8,9]])
# 访问第二行第三列的元素
print(b[1,2])
# 切片访问
print(b[0:2,1:3])
输出结果:
1
[2 3]
6
[[2 3]
[5 6]]
数组的数学运算
对于NumPy数组,我们可以进行各种数学运算,例如加、减、乘、除等。还可以使用NumPy中提供的各种函数,例如求平均值、标准差等等。示例代码如下:
import numpy as np
a = np.array([1,2,3,4])
b = np.array([5,6,7,8])
# 数组加法
print(a + b)
# 数组减法
print(b - a)
# 数组乘法
print(a * b)
# 数组除法
print(b / a)
# 求平均值
print(a.mean())
# 求标准差
print(b.std())
输出结果:
[ 6 8 10 12]
[4 4 4 4]
[ 5 12 21 32]
[5. 3. 2.33333333 2. ]
2.5
1.8708286933869707
广播
广播是NumPy中非常有用的功能之一,可以有助于在不同形状的数组之间进行计算,例如相加、相减、相乘、相除等。NumPy使用广播来对数组进行运算,可以根据对齐规则自动调整数组。示例代码如下:
import numpy as np
a = np.array([1,2,3])
b = np.array([[4,5,6], [7,8,9]])
# 数组加法
print(a + b)
输出结果:
[[ 5 7 9]
[ 8 10 12]]
随机数生成
NumPy还提供了很多随机数生成的函数,例如生成随机整数、生成随机浮点数、从给定数据中抽样、打乱数组等。示例代码如下:
import numpy as np
# 生成随机整数
a = np.random.randint(0, 10, size=5)
print(a)
# 生成随机浮点数
b = np.random.random(size=(2,3))
print(b)
# 从给定数据中抽样
c = np.random.choice([1,2,3,4,5], size=(3,3))
print(c)
# 打乱数组
d = np.arange(10)
np.random.shuffle(d)
print(d)
输出结果:
[7 1 0 0 7]
[[0.04168358 0.46725363 0.64897736]
[0.49807061 0.50867773 0.75336988]]
[[1 5 5]
[4 4 4]
[4 4 5]]
[4 1 8 3 0 7 9 2 6 5]