6. 练习题
练习题的Jupyter Notebook版:https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises.ipynb
danger
我们知道该链接包含了练习题的答案,还请你先动脑子思考一下,再看答案,学术诚信是你作为成年人应该遵守的准则。
1. 导入numpy库并简写为 np (★☆☆)
2. 打印numpy的版本和配置说明 (★☆☆)
3. 创建一个长度为10的空向量 (★☆☆)
4. 如何找到任何一个数组的内存大小? (★☆☆)
5. 如何从命令行得到numpy中add函数的说明文档? (★☆☆)
6. 创建一个长度为10并且除了第五个值为1的空向量 (★☆☆)
7. 创建一个值域范围从10到49的向量 (★☆☆)
8. 反转一个向量(第一个元素变为最后一个) (★☆☆)
9. 创建一个 3x3 并且值从0到8的矩阵 (★☆☆)
10. 找到数组[1,2,0,0,4,0]中非0元素的位置索引 (★☆☆)
11. 创建一个 3x3 的单位矩阵 (★☆☆)
12. 创建一个 3x3x3的随机数组 (★☆☆)
13. 创建一个 10x10 的随机数组并找到它的最大值和最小值 (★☆☆)
14. 创建一个长度为30的随机向量并找到它的平均值 (★☆☆)
15. 创建一个二维数组,其中边界值为1,其余值为0 (★☆☆)
16. 对于一个存在在数组,如何添加一个用0填充的边界? (★☆☆)
17. 以下表达式运行的结果分别是什么? (★☆☆)
0 * np.nan
np.nan == np.nan
np.inf > np.nan
np.nan - np.nan
np.nan in set([np.nan])
0.3 == 3 * 0.1
18. 创建一个 5x5的矩阵,并设置值1,2,3,4落在其对角线下方位置 (★☆☆)
19. 创建一个8x8 的矩阵,并且设置成棋盘样式 (★☆☆)
20. 考虑一个 (6,7,8) 形状的数组,其第100个元素的索引(x,y,z)是什么? (★☆☆)
21. 用tile函数去创建一个 8x8的棋盘样式矩阵 (★☆☆)
22. 对一个5x5的随机矩阵做归一化 (★☆☆)
23. 创建一个将颜色描述为(RGBA)四个无符号字节的自定义dtype? (★☆☆)
24. 一个5x3的矩阵与一个3x2的矩阵相乘,实矩阵乘积是什么? (★☆☆)
25. 给定一个一维数组,对其在3到8之间的所有元素取反 (★☆☆)
26. 下面脚本运行后的结果是什么? (★☆☆)
# Author: Jake VanderPlas
print(sum(range(5),-1))
from numpy import *
print(sum(range(5),-1))
27. 考虑一个整数向量Z,下列表达合法的是哪个? (★☆☆)
Z**Z
2 << Z >> 2
Z <- Z
1j*Z
Z/1/1
Z<Z>Z
28. 下列表达式的结果分别是什么? (★☆☆)
np.array(0) / np.array(0)
np.array(0) // np.array(0)
np.array([np.nan]).astype(int).astype(float)
29. 如何从零位对浮点数组做舍入? (★☆☆)
30. 如何找到两个数组中的共同元素? (★☆☆)
31. 如何忽略所有的 numpy 警告(尽管不建议这么做)? (★☆☆)
32. 下面的表达式是正确的吗? (★☆☆)
np.sqrt(-1) == np.emath.sqrt(-1)
33. 如何得到昨天,今天,明天的日期? (★☆☆)
34. 如何得到所有与2016年7月对应的日期? (★★☆)
35. 如何直接在位计算(A+B)*(-A/2)(不建立副本)? (★★☆)
36. 用4种不同的方法去提取一个随机数组的整数部分 (★★☆)
37. 创建一个5x5的矩阵,其中每行的数值范围从0到4 (★★☆)
38. 通过考虑一个可生成10个整数的函数,来构建一个数组 (★☆☆)
39. 创建一个长度为10的随机向量,其值域范围从0到1,但是不包括0和1 (★★☆)
40. 创建一个长度为10的随机向量,并将其排序 (★★☆)
41. 对于一个小数组,如何用比 np.sum更快的方式对其求和? (★★☆)
42. 对于两个随机数组A和B,检查它们是否相等 (★★☆)
43. 创建一个只读数组(read-only) (★★☆)
44. 将笛卡尔坐标下的一个10x2的矩阵转换为极坐标形式 (★★☆)
45. 创建一个长度为10的向量,并将向量中最大值替换为1 (★★☆)
46. 创建一个结构化数组,并实现 x
和 y
坐标覆盖 [0,1]x[0,1] 区域 (★★☆)
47. 给定两个数组X和Y,构造Cauchy矩阵C (Cij =1/(xi - yj)) (★★☆)
48. 打印每个numpy标量类型的最小值和最大值? (★★☆)
49. 如何打印一个数组中的所有数值? (★★☆)
50. 给定标量时,如何找到数组中最接近标量的值? (★★☆)
51. 创建一个表示位置(x,y)和颜色(r,g,b)的结构化数组 (★★☆)
52. 对一个表示坐标形状为(100,2)的随机向量,找到点与点的距离 (★★☆)
53. 如何将32位的浮点数(float)转换为对应的整数(integer)?
54. 如何读取以下文件? (★★☆)
1, 2, 3, 4, 5
6, , , 7, 8
, , 9,10,11