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

相关推荐
xb11321 天前
C# WinForms界面设计
开发语言·c#
-Rane1 天前
【C++】内存管理
开发语言·c++
深蓝电商API1 天前
Scrapy杜绝重复请求:Rfpdupfilter源码分析与优化
爬虫·python·scrapy
DARLING Zero two♡1 天前
【计算机网络】简学深悟启示录:序列化&&反序列化
开发语言·计算机网络·php
ID_180079054731 天前
乐天(Letian)商品详情API接口的调用示例与代码实现
开发语言·python
南 阳1 天前
Python从入门到精通day10
linux·windows·python
mftang1 天前
Python 获取当前目录的多种方法
python
一位搞嵌入式的 genius1 天前
深入理解 JavaScript 原型与继承:从基础到进阶
开发语言·前端·javascript
晨非辰1 天前
C++波澜壮阔40年|类和对象篇:拷贝构造与赋值重载的演进与实现
运维·开发语言·c++·人工智能·后端·python·深度学习
多米Domi0111 天前
0x3f 第36天 外卖8,9,树
数据结构·python·算法·leetcode