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

相关推荐
gCode Teacher 格码致知20 小时前
Python基础教学:Python的openpyxl和python-docx模块结合Excel和Word模板进行数据写入-由Deepseek产生
python·excel
Destiny_where1 天前
Agent平台-RAGFlow(2)-源码安装
python·ai
molunnnn1 天前
第四章 Agent的几种经典范式
开发语言·python
洛_尘1 天前
JAVA EE初阶 2: 多线程-初阶
java·开发语言
linuxxx1101 天前
django测试缓存命令的解读
python·缓存·django
@卞1 天前
C语言常见概念
c语言·开发语言
wjs20241 天前
Eclipse 关闭项目详解
开发语言
沐知全栈开发1 天前
《隐藏(Hide)》
开发语言
lkbhua莱克瓦241 天前
Java基础——方法
java·开发语言·笔记·github·学习方法