NumPy 是一个 Python 包。它代表 “Numeric Python”。得到广泛适用的Python数据处理库,pandas, OpenCV等库都基于numpy。同时,也应用于PyTorch、TensorFlow、Keras等深度学习框架中,了解numpy将显著提高数据共享和处理能力,甚至无需过多更改就可以在GPU运行计算。
使用NumPy,开发人员可以执行以下操作:
-
数组的算数和逻辑运算。
-
傅立叶变换和用于图形操作的例程。
-
与线性代数有关的操作。NumPy 拥有线性代数和随机数生成的内置函数。
NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用。这种组合广泛用于替代 MatLab,是一个流行的技术计算平台。
Python 作为 MatLab 的替代方案,是一种更加现代和完整的编程语言。
分享一份100道numpy练习题
难度从入门到进阶,附有答案
适合学习之余巩固所学进度
……
部分习题展示
2. 打印 numpy 的版本和配置说明 (★☆☆)
(提示: np.__version__, np.show_config)
8. 反转一个向量(第一个元素变为最后一个) (★☆☆)
(提示: array[::-1])
12. 创建一个 3x3x3 的随机数组 (★☆☆)
(提示: np.random.random)
15. 创建一个二维数组,其中边界值为 1,其余值为 0 (★☆☆)
(提示: array[1:-1, 1:-1])
23. 创建一个将颜色描述为(RGBA)四个无符号字节的自定义 dtype?(★☆☆)
(提示: np.dtype)
28. 下列表达式的结果分别是什么?(★☆☆)
np.array(0) / np.array(0)
np.array(0) // np.array(0)
np.array([np.nan]).astype(int).astype(float)
32. 下面的表达式是正确的吗?
(提示: imaginary number)
np.sqrt(-1) == np.emath.sqrt(-1)
35. 如何直接在位计算(A+B)\*(-A/2)(不建立副本)? (★★☆)
(提示: np.add(out=), np.negative(out=), np.multiply(out=),
np.divide(out=))
39. 创建一个长度为 10 的随机向量,其值域范围从 0 到 1,但是不包括 0 和 1 (★★☆)
(提示: np.linspace)
43. 创建一个只读数组(read-only) (★★☆)
(提示: flags.writeable)
45. 创建一个长度为 10 的向量,并将向量中最大值替换为 1 (★★☆)
(提示: argmax)
60. 如何检查一个二维数组是否有空列?(★★☆)
(提示: any, ~)