1.9 训练场
🚩训练场中包含十道例题以及答案代码,读者需要自己敲写一遍,已增强学习记忆。
在这里,给大家介绍一个函数:display() 它的作用类似于 print() 函数,不过它相较于 print 而言更加的美观:
1.9.1 创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1
# 创建一个长度为10的一维全为0的ndarray对象,然后让第5个元素等于1 import numpy as np arr = np.zeros(10, dtype = 'int') # 第5个 arr[4] = 1 arr
1.9.2 创建一个元素为从10到49的ndarray对象,间隔是1
# 创建一个元素为从10到49(包含49)的ndarray对象,间隔是1 import numpy as np # 注意是包含 49 的,故我们在给函数串参数的时候需要传到 50 arr = np.arange(10, 50) arr
1.9.3 将第2题的所有元素位置反转
# 将第2题的所有元素位置反转 import numpy as np # 注意是包含 49 的,故我们在给函数串参数的时候需要传到 50 arr = np.arange(10, 50) arr # 使用反向切片操作可以使元素实现翻转 arr = arr[::-1] arr
1.9.4 使用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素
# 使用np.random.random创建一个10*10的ndarray对象,并打印出最大最小元素 import numpy as np arr = np.random.random(size = (10, 10)) # 使用 max 和 min 分别计算最大和最小元素 print('最大值为:', arr.max()) print('最小值为:', arr.min())
1.9.5 创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0
# 创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0 import numpy as np arr = np.full(shape = (10, 10), fill_value = 0, dtype = np.int8) # 第一行和最后一行赋值为 1 arr[[0, -1]] = 1 # 第一列和最后一列赋值为 1 arr[:, [0, -1]] = 1 arr
1.9.6 创建一个每一行都是从0到4的5*5矩阵
# 创建一个每一行都是从0到4的5*5矩阵 import numpy as np # 先创建一个元素全为 0 的矩阵 arr = np.zeros((5, 5), dtype = int) # 依次加值 arr += np.arange(5) arr
1.9.7 创建一个范围在(0,1)之间的长度为12的等差数列,创建[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]等比数列。
# 创建一个范围在(0,1)之间的长度为12的等差数列 # 创建[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]等比数列 import numpy as np # 等差数列 arr = np.linspace(0,1,12) display(arr) # 等比数列 arr2 = np.logspace(0, 10, base = 2, num = 11, dtype = int) arr2
1.9.8 创建一个长度为10的正太分布数组np.random.randn并排序
# 创建一个长度为10的正太分布数组np.random.randn并排序 import numpy as np # 创建一个随机数组 arr = np.random.randn(10) print('未排序:', arr) # 调用 np.sort() 方法,需要一个新数组去接受数据 arr2 = np.sort(arr) print('排序后:', arr2)
1.9.9 创建一个长度为10的随机数组并将最大值替换为-100
# 创建一个长度为10的随机数组并将最大值替换为-100 import numpy as np # 不使用科学计数法 np.set_printoptions(suppress = True) # 创造随机数组 arr = np.random.random(10) print('原数据:', arr) # 找到最大值 Max = arr.max() # 进行条件判断 cnt = arr == Max # 更改赋值 arr[cnt] = -100 # 输出更改后的数组 print('更改后:', arr)
1.9.10 如何根据第3列大小顺序来对一个5*5矩阵排序?
# 如何根据第3列大小顺序来对一个5*5矩阵排序?(考察argsort()方法) import numpy as np # 先来讲解 argsort() 方法: arr = np.random.randint(0, 100, size = 5) display(arr) # argsort() 的作用是返回排序后的索引下标 index = np.argsort(arr) display(index) # 根据索引进行排序:花式索引 arr[index]
import numpy as np # 返回到题目要求之中 arr = np.random.randint(0, 30, size = (5, 5)) display(arr) # 获取第三列的索引顺序 index = arr[:, 2].argsort() # 根据第三列的索引顺序,对 arr 进行排序 arr[index]