水二篇|Numpy速查表

文摘   2024-08-29 19:59   新加坡  


NumPy简介

在科学计算领域,NumPy 是一个不可或缺的 Python 库。它提供了一个高性能的多维数组对象,并配备了多种工具以便于操作这些数组。

对于想要在 Python 中进行数据科学工作的人来说,掌握并熟练使用 NumPy 是至关重要的。相比于 Python 的列表,NumPy 数组更为紧凑,访问和操作速度更快,且总体上更为便捷高效。

此外,NumPy 也是其他一些关键数据处理和机器学习库的基础,比如 Pandas、Scikit-Learn 和 SciPy:

  • Pandas:这一数据操作库是基于 NumPy 构建的,但它使用了另外两种基本数据结构:Series 和 DataFrame。
  • SciPy:扩展了 NumPy 的功能,提供了大量在 NumPy 数组上操作的函数。
  • Scikit-Learn:这个机器学习库不仅依赖于 NumPy,还依赖于 SciPy 和 Matplotlib。

因此,学习和掌握 NumPy 不仅能帮助你更好地理解这些 Python 数据科学工具,还能让你在数据科学领域如鱼得水。

然而,像其他任何库一样,初学 NumPy 可能会感到有些棘手。为了帮助大家轻松入门,我们准备了一张 NumPy 速查表,涵盖了使用该库所需的基本内容。

NumPy 速查表概览

这张速查表为你提供了一个关于 NumPy 能力的全面概览。它涵盖了从数组创建、输入/输出操作、数组检查、数学运算、数组排序、选择数组元素和形状操作等多个主题。

速查表下载链接:https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Numpy_Python_Cheat_Sheet.pdf

1. NumPy 数组创建

import numpy as np

# 创建数组
a = np.array([1, 2, 3])
b = np.array([(1.5, 2, 3), (4, 5, 6)], dtype=float)
c = np.array([[(1.5, 2, 3), (4, 5, 6)], [(3, 2, 1), (4, 5, 6)]], dtype=float)

# 创建占位符
np.zeros((3, 4))  # 创建全零数组
np.ones((2, 3, 4), dtype=np.int16)  # 创建全一数组
d = np.arange(10, 25, 5)  # 创建等间隔数组
np.linspace(0, 2, 9)  # 创建等间隔数组(指定样本数)
e = np.full((2, 2), 7)  # 创建常量数组
f = np.eye(2)  # 创建单位矩阵
np.random.random((2, 2))  # 创建随机值数组
np.empty((3, 2))  # 创建空数组

2. 数组输入/输出操作

# 保存与加载
np.save('my_array', a)
np.savez('array.npz', a, b)
np.load('my_array.npy')

# 文本文件操作
np.loadtxt("myfile.txt")
np.genfromtxt("my_file.csv", delimiter=',')
np.savetxt("myarray.txt", a, delimiter=" ")

3. 数据类型

import numpy as np

np.int64       # 有符号的64位整数类型
np.float32     # 标准的32位浮点数类型
np.complex     # 由128位浮点数表示的复数类型
np.bool        # 布尔类型,存储TRUE和FALSE值
np.object      # Python对象类型
np.string_     # 固定长度的字符串类型
np.unicode_    # 固定长度的Unicode字符串类型

4. 数组检查

# 检查数组
a.shape        # 数组维度
len(a)         # 数组长度
b.ndim         # 数组维度数
e.size         # 数组元素总数
b.dtype        # 数组元素的数据类型
b.dtype.name   # 数据类型的名称
b.astype(int)  # 转换数组为不同类型

5. 获取详细信息

np.info(np.ndarray.dtype)  # 获取NumPy对象的详细信息

6. 数组数学运算

# 基本运算
g = a - b             # 减法
np.subtract(a, b)     # 减法
b + a                 # 加法
np.add(b, a)          # 加法
a / b                 # 除法
np.divide(a, b)       # 除法
a * b                 # 乘法
np.multiply(a, b)     # 乘法

# 高级运算
np.exp(b)             # 求指数
np.sqrt(b)            # 求平方根
np.sin(a)             # 计算数组的正弦值
np.cos(b)             # 元素级余弦值
np.log(a)             # 元素级自然对数
e.dot(f)              # 点积

7. 数组操作

# 拷贝
a.view()              # 创建视图
np.copy(a)            # 创建副本
a.copy()              # 创建深拷贝

# 排序
a.sort()              # 数组排序
c.sort(axis=0)        # 沿指定轴排序

# 索引与切片
a[2]                 # 单元素索引
b[1, 2]              # 多维索引
a[0:2]               # 切片
b[0:2, 1]            # 多维切片
b[:1]                # 省略索引
a[a < 2]             # 布尔索引
b[[1, 0, 1, 0], [0, 1, 2, 0]]  # 花式索引

# 形状操作
a.transpose()         # 数组转置
a.ravel()             # 展平数组
b.reshape((3, 2))     # 改变数组形状

# 数组组合与分割
np.append(a, [7, 8, 9])  # 追加元素
np.insert(a, 1, 5)        # 插入元素
np.delete(a, [1])         # 删除元素
np.concatenate((a, b), axis=0)  # 连接数组
np.vstack((a, b))         # 垂直堆叠
np.hstack((a, b))         # 水平堆叠
np.hsplit(a, 3)           # 水平分割
np.vsplit(c, 2)           # 垂直分割

结语

这份速查表涵盖了NumPy的核心功能,为你的数据科学之旅提供了坚实的起点。虽然NumPy相对而言比较简单,但它是数据科学的基本概念。在深入学习时,你会发现它在数据处理、科学计算和机器学习等领域有着广泛的应用。

如果你希望进一步拓展数据科学技能,不妨继续探索Pandas、Scikit-Learn、Matplotlib等库的相关资料。记住,在数据科学的世界里,持续学习和实践是成功的关键。


蔡荔谈AI
AI科普 AI培训 超级个体 创业
 最新文章