您的位置:

Python NumPy教程

Python NumPy教程

更新:

一、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]])