NumPy 完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧

NumPy 是 Python 进行数值计算的基础包,它提供了一个高性能的多维数组对象 ndarray,以及用于操作这些数组的多种工具和函数。NumPy 的强大之处在于它的数组运算速度比 Python 的原生列表快得多。此外,NumPy 还支持大量的数学函数,使得科学计算变得更加高效和简便。

1. 安装 NumPy

在使用 NumPy 之前,需要确保已安装该库。可以通过以下命令安装:

pip install numpy

2. 创建 NumPy 数组

NumPy 提供了多种方法来创建数组。我们可以使用 array() 函数来从现有的列表或元组创建数组,或者使用特定的函数来创建特定形状的数组。

import numpy as np

# 从列表创建数组
a = np.array([1, 2, 3])
print(a)  # 输出: [1 2 3]

# 创建零数组
b = np.zeros((2, 3))
print(b)  
# 输出:
# [[0. 0. 0.]
#  [0. 0. 0.]]

# 创建单位数组
c = np.eye(3)
print(c)  
# 输出:
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]

# 创建随机数组
d = np.random.rand(2, 2)
print(d)

3. 数组属性

NumPy 数组有一些非常重要的属性,包括 shapedtypendim

print("数组 b 的形状:", b.shape)  # 输出: (2, 3)
print("数组 d 的数据类型:", d.dtype)  # 输出: float64
print("数组 c 的维度:", c.ndim)  # 输出: 2

4. 数组的运算

NumPy 数组支持多种数学运算,包括加、减、乘、除等运算。这些运算都是逐元素进行的,这使得数组运算非常高效。

# 数组之间的运算
e = np.array([1, 2, 3])
f = np.array([4, 5, 6])

print("相加:", e + f)  # 输出: [5 7 9]
print("相减:", e - f)  # 输出: [-3 -3 -3]
print("相乘:", e * f)  # 输出: [ 4 10 18]
print("相除:", e / f)  # 输出: [0.25 0.4  0.5 ]

5. 数组的切片与索引

NumPy 支持灵活的切片与索引方式,允许用户在多维数组中提取子数组。

# 创建一个 3x3 的数组
g = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])

# 提取第一行
print(g[0])  # 输出: [1 2 3]

# 提取第一列
print(g[:, 0])  # 输出: [1 4 7]

# 提取子数组
print(g[0:2, 1:3])  # 输出: [[2 3]
                    #         [5 6]]

6. 数组的变形

NumPy 允许用户对数组进行变形,使得我们可以改变数组的形状,而不改变数据本身。

h = np.array([[1, 2, 3, 4],
              [5, 6, 7, 8]])

# 变形为 4x2 数组
h_reshaped = h.reshape((4, 2))
print(h_reshaped)
# 输出:
# [[1 2]
#  [3 4]
#  [5 6]
#  [7 8]]

结论

NumPy 是 Python 数据科学和机器学习领域中不可或缺的工具。通过掌握 NumPy 数组的创建、运算、切片与变形操作,您将能在科学计算中更加高效。接下来的指南将介绍 NumPy 中更复杂的功能,如广播、线性代数运算等内容。希望本文能够帮助您快速入门 NumPy 的使用!

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部