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等库的相关资料。记住,在数据科学的世界里,持续学习和实践是成功的关键。