前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NumPy进阶修炼80题|41-60

NumPy进阶修炼80题|41-60

作者头像
刘早起
发布2020-07-17 11:34:26
4420
发布2020-07-17 11:34:26
举报
文章被收录于专栏:早起Python早起Python

大家好,又到了NumPy进阶修炼专题,其实已经断更很久了,那么在本文正式发布题目之前,先说下改动的地方,在以前的Pandas120题NumPy热身20题中,我都是将我的答案附在每一题的后面?

这种形式的题目对于读者来说,尤其是新手朋友们,很容易被我的思路带进去,实际上不论我的pandas还是numpy的习题,每一题都有多种解法,并且我的解法有时也并不是最佳方法,所以为了让大家多一点自己思考的时间,在numpy以及后面的其他系列习题中,我将换一种方式整理习题?

就像上图一样,我将同时发布两个Notebook版本习题,一份习题单独版,一份带有我的答案的单独版本,大家可以先试着在只有习题的版本中思考,写代码,并与我的答案对比,也欢迎给我提交不一样的答案!

好了,废话不多说,我们来看今天的20题,主要将涉及到用NumPy对矩阵的一些操作

41

数据创建

题目:生成6行6列的二维数组,值为1-100随机数

难度:⭐

答案

代码语言:javascript
复制
data = np.random.randint(1,100, [6,6])

42

数据查找

题目:找到每列的最大值

难度:⭐⭐

答案

代码语言:javascript
复制
np.amax(data, axis=0)

43

数据查找

题目:找到每行的最小值

难度:⭐⭐

答案

代码语言:javascript
复制
np.amin(data, axis=1)

44

数据计算

题目:计算data每个元素的出现次数

难度:⭐⭐

答案

代码语言:javascript
复制
np.unique(data,return_counts=True)

45

数据计算

题目:计算data每行元素大小排名

难度:⭐⭐

答案

代码语言:javascript
复制
data.argsort()

46

数据处理

题目:将data按行重复一次

难度:⭐⭐

答案

代码语言:javascript
复制
np.repeat(data, 2, axis=0)

47

数据处理

题目:去除data的重复行

难度:⭐⭐

答案

代码语言:javascript
复制
np.unique(data,axis = 0)

48

数据抽样

题目:从data的第一行中不放回抽3个元素

难度:⭐⭐

答案

代码语言:javascript
复制
np.random.choice(data[0:1][0], 3, replace=False)

49

数据计算

题目:计算data第二行中不含第三行的元素的元素

难度:⭐⭐

答案

代码语言:javascript
复制
a = data[1:2]
b = data[2:3]
index=np.isin(a,b)
array=a[~index]
array

50

数据计算

题目:判断data是否有空行

难度:⭐⭐

答案

代码语言:javascript
复制
(~data.any(axis=1)).any()

51

数据排序

题目:将data的每行升序排列

难度:⭐⭐

答案

代码语言:javascript
复制
data.sort(axis = 1)

52

数据转换

题目:将data的数据格式转换为float

难度:⭐⭐

答案

代码语言:javascript
复制
data1 = data.astype(float)

思考:为什么不能在data本身转换

53

数据修改

题目:将data1小于5的元素修改为nan

难度:⭐⭐

答案

代码语言:javascript
复制
data1[data1 < 5] = np.nan

54

数据处理

题目:删除data1含有空值的行

难度:⭐⭐

答案

代码语言:javascript
复制
data1 = data1[~np.isnan(data1).any(axis=1), :]

55

数据计算

题目:计算data1第一行出现频率最高的值

难度:⭐⭐⭐

答案

代码语言:javascript
复制
vals, counts = np.unique(data1[0,:], return_counts=True)
print(vals[np.argmax(counts)])

56

数据计算

题目:计算data1中与100最接近的元素

难度:⭐⭐⭐

答案

代码语言:javascript
复制
a = 100
data1.flat[np.abs(data1 - a).argmin()]

57

数据计算

题目:计算data1每一行的元素减去每一行的平均值

难度:⭐⭐

答案

代码语言:javascript
复制
data1 - data1.mean(axis=1, keepdims=True)

58

数据计算

题目:将data1归一化至区间[0,1]

难度:⭐⭐

答案

代码语言:javascript
复制
a = np.max(data1) - np.min(data1)
(data1 - np.min(data1)) / a

59

数据计算

题目:将data1标准化

难度:⭐⭐⭐

答案

代码语言:javascript
复制
mu = np.mean(data1, axis=0)
sigma = np.std(data1, axis=0)
(data1 - mu) / sigma

60

数据存储

题目:将data1存储至本地

难度:⭐

答案

代码语言:javascript
复制
np.savetxt('test.txt',data1)

以上就是本期20题的全部内容,欢迎思考与我不同的解法,你可以在早起Python后台回复numpy来获取Notebook的两种版本习题来练习,其实NumPy中的操作没有Pandas中的多变,所以全部大概在80题左右,本周会更新完毕,如果你也喜欢这种形式的习题可以给我点个在看,我们下期见。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 早起Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档