NumPy 是 Python 中用于科学计算的一个核心库,它提供了一个强大的 N 维数组对象(ndarray),以及一系列操作这些数组的函数。对于超过一维(1D)的 NumPy 数组,高级切片是一种强大的工具,允许你访问和操作数组的子集。
start:stop:step
语法。import numpy as np
# 创建一个 3x3 的二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 基本切片
print("基本切片:")
print(arr[0:2, 1:3]) # 输出 [[2 3] [5 6]]
# 多维切片
print("\n多维切片:")
print(arr[:, ::2]) # 输出 [[1 3] [4 6] [7 9]]
# 布尔索引
bool_idx = arr > 5
print("\n布尔索引:")
print(arr[bool_idx]) # 输出 [6 7 8 9]
# 花式索引
print("\n花式索引:")
print(arr[[0, 2], [1, 2]]) # 输出 [2 9]
问题:尝试对一个大型数组进行切片时,发现性能不如预期。
原因:可能是由于切片操作返回的是一个副本而不是视图,尤其是在涉及复杂条件或多个维度时。
解决方法:
.copy()
方法显式创建副本,如果你确实需要一个独立的数组。np.memmap
)。通过理解这些基础概念和技巧,你可以更有效地使用 NumPy 来处理和分析数据。
领取专属 10元无门槛券
手把手带您无忧上云