面试题答案
一键面试import numpy as np
# 创建5维数组
arr = np.random.rand(2, 3, 4, 5, 6)
# 切片操作,提取每个维度的前半部分元素
new_arr = arr[:1, :2, :2, :3, :3]
# 逐元素平方运算
result = new_arr ** 2
print(result)
NumPy优化策略分析
- 向量化运算:NumPy避免了Python的显式循环,在底层使用C语言实现向量化操作。这样减少了Python循环带来的解释器开销,提高运算效率。
- 内存连续存储:NumPy数组在内存中是连续存储的,这使得在访问和操作数组元素时,缓存命中率更高。例如在切片和逐元素运算时,内存的连续性有利于提高数据读取和写入的速度。
- 并行计算:NumPy在某些情况下会利用多线程进行并行计算,特别是在多核CPU环境下。像逐元素平方这样的操作,NumPy可能会将数据分块,并行地在不同CPU核心上执行运算,从而加速整体的计算过程。