NumPy是Python的一个扩展库,用于处理大型多维数组和矩阵,具有广泛的数学支持函数。在科学计算和数据分析中,NumPy是必不可少的一部分。它不仅提供了丰富的数学运算、线性代数运算和傅里叶变换等算法,还能够与其他科学计算和数据分析的Python库很好地结合使用。
一、数组的创建
创建NumPy数组的最基本方式是使用numpy.array()函数。下面是创建一个一维数组的例子:
import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
输出结果为:
[1 2 3 4 5]
使用numpy.arange()函数可以创建一个有序的一维数组,下面是一个例子:
import numpy as np
arr2 = np.arange(10)
print(arr2)
输出结果为:
[0 1 2 3 4 5 6 7 8 9]
numpy.zeros()函数可以创建指定形状的数组,并用0来填充,下面是一个例子:
import numpy as np
arr3 = np.zeros((3, 4))
print(arr3)
输出结果为:
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
二、数组的操作
NumPy数组提供了很多方法和函数可以用来对数组进行操作。下面是一些常用的操作方法:
1.形状操作
numpy.reshape()可以用来改变数组的形状,下面是一个例子:
import numpy as np
arr4 = np.array([1, 2, 3, 4, 5, 6])
arr5 = arr4.reshape((2, 3))
print(arr5)
输出结果为:
[[1 2 3]
[4 5 6]]
2.数组拼接
numpy.concatenate()和numpy.stack()可以用来将数组沿着不同的轴进行拼接,下面是一个例子:
import numpy as np
arr6 = np.array([[1, 2], [3, 4]])
arr7 = np.array([[5, 6], [7, 8]])
# 沿着水平轴拼接两个数组
arr8 = np.concatenate((arr6, arr7), axis=1)
print(arr8)
# 沿着垂直轴拼接两个数组
arr9 = np.stack((arr6, arr7))
print(arr9)
输出结果为:
[[1 2 5 6]
[3 4 7 8]]
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
三、数组的运算
1.数学运算
NumPy数组内置了很多数学函数,例如加、减、乘、除等,都是向量化操作,可以同时对整个数组进行数学运算。下面是一些常用的函数:
import numpy as np
arr10 = np.array([1, 2, 3])
arr11 = np.array([4, 5, 6])
# 数组相加
arr12 = np.add(arr10, arr11)
print(arr12)
# 数组相减
arr13 = np.subtract(arr10, arr11)
print(arr13)
# 数组相乘
arr14 = np.multiply(arr10, arr11)
print(arr14)
# 数组相除
arr15 = np.divide(arr10, arr11)
print(arr15)
输出结果为:
[5 7 9]
[-3 -3 -3]
[ 4 10 18]
[0.25 0.4 0.5 ]
2.统计学运算
NumPy数组可以进行各种统计学运算,例如最大值、最小值、方差、标准差等。下面是一些常用的统计函数:
import numpy as np
arr16 = np.array([1, 2, 3, 4, 5])
arr17 = np.array([[1, 2], [3, 4]])
# 数组最大值
print(np.max(arr16))
# 数组最小值
print(np.min(arr16))
# 数组平均值
print(np.mean(arr16))
# 数组方差
print(np.var(arr16))
# 数组标准差
print(np.std(arr16))
# 二维数组沿着行进行求和
print(np.sum(arr17, axis=1))
输出结果为:
5
1
3.0
2.0
1.4142135623730951
[3 7]
四、总结
本文介绍了如何使用Python创建和操作NumPy数组。在创建数组的过程中,我们可以使用numpy.array()、numpy.arange()和numpy.zeros()函数。在操作数组的过程中,我们可以使用numpy.reshape()、numpy.concatenate()和numpy.stack()函数对数组进行形状操作和拼接,还可以使用各种内置的数学函数和统计函数进行数组的运算和统计学分析。