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的熟练度,并巩固对其功能和特性的理解。

相关推荐
我要见SA姐1几秒前
Chrome 扩展安全攻防实录:从权限滥用到供应链投毒
运维·人工智能·python·机器学习·自动化
2601_962885724 分钟前
给 backtrader 接 A 股数据:用 AlphaFeed 喂PandasData
python
旖旎夜光16 分钟前
【C++ 基础入门】命名空间、输入输出、缺省参数与函数重载
开发语言·c++·笔记·学习
YYYing.26 分钟前
【Agent系列 (十一) 】上下文工程
人工智能·python·ai·agent·上下文工程
俩个逗号。。28 分钟前
Kotlin flow 详解
android·开发语言·kotlin
计算机毕业编程指导师30 分钟前
基于深度学习的光伏组件红外图像缺陷识别系统设计与实现
人工智能·python·深度学习·目标检测·毕业设计·课程设计·光伏
前端精髓1 小时前
langchain 短期记忆(状态)动态运行时上下文
python·langchain
程序猿乐锅1 小时前
万字详解Single-flight(单飞模式)
java·开发语言·分布式·后端·学习·single-flight
最强小杰2 小时前
DeepSeek V4 Flash + Codex CLI 接入教程:原生 Responses API 适配,从配置到跑通收藏这篇就够了(2026)
java·前端·python·ai
DeepVisionary2 小时前
为拿并网许可,OpenAI在佐治亚新园区同意高峰期断电三成
python·自动化