一、NumPy介绍
NumPy是一个Python科学计算库,通过使用Python进行数值计算时可以用来处理大型、多维数组和矩阵,还包含许多其他有用的数学函数。
下面是NumPy的一个基本示例:
import numpy as np
# 创建一个一维数组
a = np.array([1, 2, 3])
print(a)
# 创建一个二维数组
b = np.array([[1, 2], [3, 4]])
print(b)
# 使用arange函数创建一个一维数组
c = np.arange(10)
print(c)
# 使用linspace函数创建一个一维数组
d = np.linspace(0, 1, 5) # Creates an array of 5 values between 0 and 1
print(d)
# 使用zeros函数创建一个3x3的全零矩阵
e = np.zeros((3, 3))
print(e)
# 使用ones函数创建一个2x2的全一矩阵
f = np.ones((2, 2))
print(f)
二、数组基础
NumPy中的核心对象是ndarray对象,它具有多种计算和操作数组的方法。
1. 创建数组
使用NumPy创建数组的最基本方法是使用array函数:
a = np.array([1, 2, 3])
print(a)
b = np.array([[1, 2], [3, 4]])
print(b)
2. 数组与标量间的运算
可以对数组进行算术运算,并使用布尔运算符组合数组:
a = np.array([1, 2, 3])
print(a + 2)
# Output: array([3, 4, 5])
b = np.array([5, 6, 7])
print(a + b)
# Output: array([6, 8, 10])
print(a > 2)
# Output: array([False, False, True])
3. 数组索引和切片
可以使用索引和切片对数组进行访问和修改:
a = np.array([1, 2, 3, 4, 5])
print(a[1]) # Output: 2
print(a[1:]) # Output: array([2, 3, 4, 5])
a[1] = 10
print(a) # Output: array([ 1, 10, 3, 4, 5])
三、数组操作
NumPy提供了一些函数,可用于操作和修改数组。
1. 形状操作
可以更改数组的形状,例如:转置、调整尺寸等。
a = np.array([[1, 2], [3, 4], [5, 6]])
print(a.shape) # Output: (3, 2)
print(a.T) # Output: array([[1, 3, 5], [2, 4, 6]])
print(a.reshape(2, 3)) # Output: array([[1, 2, 3], [4, 5, 6]])
2. 数组拼接和拆分
可以拼接和拆分数组。
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
print(np.concatenate((a, b), axis=0)) # Output: array([[1, 2], [3, 4], [5, 6]])
print(np.concatenate((a, b.T), axis=1)) # Output: array([[1, 2, 5], [3, 4, 6]])
a = np.array([[1, 2], [3, 4]])
print(np.split(a, 2)) # Output: [array([[1, 2]]), array([[3, 4]])]
3. 数组迭代
可以迭代多维数组。
a = np.array([[1, 2], [3, 4]])
for row in a:
print(row)
# Output: [1, 2]
# [3, 4]
for i in np.nditer(a):
print(i)
# Output: 1
# 2
# 3
# 4
四、数学函数
NumPy包含许多数学函数,例如:计算均值、方差、标准差等。
a = np.array([1, 2, 3, 4, 5])
print(np.mean(a)) # Output: 3.0
print(np.median(a)) # Output: 3.0
print(np.std(a)) # Output: 1.4142136
b = np.array([[1, 2], [3, 4]])
print(np.mean(b, axis=0)) # Output: array([ 2., 3.])
print(np.mean(b, axis=1)) # Output: array([ 1.5, 3.5])
五、随机数生成
NumPy也可以用于生成随机数,例如:可以创建随机数的数组。
a = np.random.rand(2, 3)
print(a)
# Output: array([[ 0.6235637 , 0.05479465, 0.65986414],
# [ 0.48831971, 0.14720888, 0.54240955]])
b = np.random.randint(0, 10, size=(2, 3))
print(b)
# Output: array([[4, 3, 0],
# [3, 6, 6]])