python&numpy十五: 关于numpy的基础练习

下面是一些较为复杂的NumPy练习题及其答案:

题目:

1.创建一个形状为(5, 5)的二维数组,其中每个元素的值等于其行索引加上其列索引的和。

2.创建一个大小为10的随机数组,并找到其中前三个最大值的索引。

3.创建一个大小为10的随机数组,并将其中所有大于0.5的元素替换为1,其余元素替换为0。

4.给定一个一维数组,找出所有连续重复的元素,并将它们替换为0。

答案:

练习1:

创建一个形状为(5, 5)的二维数组,其中每个元素的值等于其行索引加上其列索引的和。

复制代码
import numpy as np

arr = np.fromfunction(lambda i, j: i + j, (5, 5), dtype=int)

print(arr)

输出结果:

复制代码
[[0 1 2 3 4]
 [1 2 3 4 5]
 [2 3 4 5 6]
 [3 4 5 6 7]
 [4 5 6 7 8]]

练习2:

创建一个大小为10的随机数组,并找到其中前三个最大值的索引。

复制代码
import numpy as np

arr = np.random.rand(10)
indices = np.argsort(arr)[-3:]

print("Array:", arr)
print("Indices of top 3 max values:", indices)

输出结果类似:

复制代码
Array: [0.69663739 0.33775502 0.75378663 0.57768405 0.28549115 0.43134244
 0.55627119 0.49357289 0.21644175 0.73342044]
Indices of top 3 max values: [2 9 0]

练习3:

创建一个大小为10的随机数组,并将其中所有大于0.5的元素替换为1,其余元素替换为0。

复制代码
import numpy as np

arr = np.random.rand(10)
arr[arr > 0.5] = 1
arr[arr <= 0.5] = 0

print(arr)

输出结果类似:

复制代码
[0. 0. 0. 0. 0. 1. 1. 1. 1. 1.]

练习4:

给定一个一维数组,找出所有连续重复的元素,并将它们替换为0。

复制代码
import numpy as np

arr = np.array([1, 2, 2, 3, 4, 4, 4, 5, 6, 6, 7])
mask = np.concatenate(([False], arr[1:] == arr[:-1]))
arr[mask] = 0

print(arr)

输出结果:[1 2 0 3 4 0 0 5 6 0 7]

这些练习题考验了对NumPy数组操作和高级函数的理解。通过完成这些练习,可以提升对NumPy的熟练度,并巩固对其功能和特性的理解。

相关推荐
2401_858286118 分钟前
125.【C语言】数据结构之归并排序递归解法
c语言·开发语言·数据结构·算法·排序算法·归并排序
guygg8844 分钟前
基于matlab的FIR滤波器
开发语言·算法·matlab
双叶8361 小时前
(C++)学生管理系统(正式版)(map数组的应用)(string应用)(引用)(文件储存的应用)(C++教学)(C++项目)
c语言·开发语言·数据结构·c++
微风粼粼1 小时前
程序员在线接单
java·jvm·后端·python·eclipse·tomcat·dubbo
源代码•宸1 小时前
C++高频知识点(二)
开发语言·c++·经验分享
云天徽上1 小时前
【PaddleOCR】OCR表格识别数据集介绍,包含PubTabNet、好未来表格识别、WTW中文场景表格等数据,持续更新中......
python·ocr·文字识别·表格识别·paddleocr·pp-ocrv5
你怎么知道我是队长2 小时前
python-input内置函数
开发语言·python
叹一曲当时只道是寻常2 小时前
Python实现优雅的目录结构打印工具
python
hbwhmama3 小时前
python高级变量XIII
python
jyan_敬言3 小时前
【C++】string类(二)相关接口介绍及其使用
android·开发语言·c++·青少年编程·visual studio