numpy 归一化_NumPy进阶修炼80题4160

点击上方“早起Python”,关注并“星标”

每日接收Python干货!13fe5dbd798e4499577b432e776d66bf.png

本文是NumPy进阶修炼系列的第六篇

  • 1 - NumPy进阶修炼|入门

  • 2 - NumPy进阶修炼|基础

  • 3 - NumPy进阶修炼|热身20题

  • 4 - NumPy进阶修炼|基础操作与运算

  • 5 - NumPy进阶修炼|矩阵操作20题

  • 6 - NumPy进阶修炼|61-80题

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

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

b78d793d076d001d570503da8653c47f.png

50d6a6569d82579e4f993aee911be625.png

8c52f2941f3f2f0b9c9dd5b44c7cd8b0.png

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

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

41 数据创建 题目: 生成6行6列的二维数组,值为1-100随机数 难度:⭐ 答案
data = np.random.randint(1,100, [6,6])
42 数据查找 题目:找到每列的最大值 难度:⭐⭐ 答案
np.amax(data, axis=0)
43 数据查找 题目:找到每行的最小值 难度:⭐⭐ 答案
np.amin(data, axis=1)
44 数据计算 题目: 计算data每个元素的出现次数 难度:⭐⭐ 答案
np.unique(data,return_counts=True)
45 数据计算 题目:计算 data每行元素大小排名 难度:⭐⭐ 答案
data.argsort()
46 数据处理 题目: 将data按行重复一次 难度:⭐⭐ 答案
np.repeat(data, 2, axis=0)
47 数据处理 题目:去除data的重复行 难度:⭐⭐ 答案
np.unique(data,axis = 0)
48 数据抽样 题目: 从data的第一行中不放回抽3个元素 难度:⭐⭐ 答案
np.random.choice(data[0:1][0], 3, replace=False)
49 数据计算 题目:计算 data第二行中不含第三行的元素的元素 难度:⭐⭐ 答案
a = data[1:2]
b = data[2:3]
index=np.isin(a,b)
array=a[~index]
array
50 数据计算 题目:判断data是否有空行 难度:⭐⭐ 答案
(~data.any(axis=1)).any()
51 数据排序 题目:将data的每行升序排列 难度:⭐⭐ 答案
data.sort(axis = 1)
52 数据转换 题目:将data的数据格式转换为float 难度:⭐⭐ 答案
data1 = data.astype(float)

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

53 数据修改 题目: 将data1小于5的元素修改为nan 难度:⭐⭐ 答案
data1[data1 < 5] = np.nan
54 数据处理 题目:删除data1含有空值的行 难度:⭐⭐ 答案
data1 = data1[~np.isnan(data1).any(axis=1), :]
55 数据计算 题目: 计算data1第一行出现频率最高的值 难度:⭐⭐⭐ 答案
vals, counts = np.unique(data1[0,:], return_counts=True)
print(vals[np.argmax(counts)])
56 数据计算 题目:计算data1中与100最接近的元素 难度:⭐⭐⭐ 答案
a = 100
data1.flat[np.abs(data1 - a).argmin()]
57 数据计算 题目:计算 data1每一行的元素减去每一行的平均值 难度:⭐⭐ 答案
data1 - data1.mean(axis=1, keepdims=True)
58 数据计算 题目:将data1归一化至区间[0,1] 难度:⭐⭐ 答案
a = np.max(data1) - np.min(data1)
(data1 - np.min(data1)) / a
59 数据计算 题目:将data1标准化 难度:⭐⭐⭐ 答案
mu = np.mean(data1, axis=0)
sigma = np.std(data1, axis=0)
(data1 - mu) / sigma
60 数据存储 题目:将data1存储至本地 难度:⭐ 答案
np.savetxt('test.txt',data1)
1bebf48b694c7af43f63a999570ccdfe.png

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

9a50651f69f4c9715dca1fe74d866f7a.png

往期精选(?猛戳可查看)f0d0018cf13acc1f2da650132b76213c.png

评测5大Python数据可视化工具

01075d2d523701ab8976a86a0326621d.png

你使用Python实战反欺诈模型

  还想了解更多干货?

 关注早起Python查看更多精彩文章

觉得这篇文章还不错?点亮「在看」鼓励一下早起!

- THE END-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值