Python数据分析教程:Numpy 中不得不知的4个重要函数
2021-02-13 19:20
标签:ase back 不同 max key alt 排序 元素 交集 Numpy 功能十分强大,很多我们想要的复杂操作都有实现。 今天分享几个数据分析中经常需要用到的重要函数。 掌握这些函数可以帮助我们保持代码整洁并且避免重复造轮子。 本文以二分类任务为例,通常我们的model会输出预测的概率,得到概率后需要进行后续的处理,比如: • 根据阈值,将概率大于某个阈值的label设置为1,小于阈值的设置为0 • 在模型诊断过程中,找出满足某些条件的样本 本文使用的示例数据如下: np.where() 方法可以帮助我们找到array中满足条件的元素的位置。现在我们可以使用np.where()找出所有预测概率大于0.5的的元素了: predict_prob = np.array([0.1,0.3,0.7,0.4,0.9]) np.where(predict_prob > 0.5) # output:array([2, 4]),) 如果我们想将所有概率大于0.5的元素替换为1,否则替换为0,该怎么做呢? 一个 简单粗暴的方式 是先用上面的方法分别找出array中概率大于或者小于0.5的索引,然后再对这些位置的元素重新赋值。 其实,np.where() 一个函数就能完成所有的操作,只需要添加两个参数: • 第一个参数是满足条件替换的值 • 第二个参数是不满足条件替换的值 predict_prob = np.array([0.1,0.3,0.7,0.4,0.9]) np.where(predict_prob > 0.5, 1, 0) # output: array([0, 0, 1, 0, 1]) np.argmin()、np.argmax()方法会返回array中最小或最大的元素索引,对示例数据运行结果如下: predict_prob = np.array([0.1,0.3,0.7,0.4,0.9]) np.argmax(predict_prob) # output: 4 np.argmin(predict_prob) # output: 0 我们成功找到了array中最大最小的元素索引,那怎样找到前n个最大的或最小的值呢? 现在该轮到np.sort()上场了 predict_prob = np.array([0.1,0.3,0.7,0.4,0.9]) np.argsort(predict_prob) # output: array([0, 1, 3, 2, 4]) np.argsort()方法还支持多维数据的排序,感兴趣的可以自行查看 Numpy官方文档 [1] intersect1d()要做的是,它会找出两个array中的交集,这个函数和前面的几个函数不同,返回的不是索引位置,而是array中的实际值。 本函数我们使用新的 示例数据: arr1 = np.array([1,2,4,4,6]) arr2 = np.array([2,3,4,5,6]) 现在,我们可以使用intersect1d()找出两个数组共同的元素了: np.intersect1d(arr1, arr2) # output: array([2, 4, 6]) Numpy 功能十分强大,很多我们想要的复杂操作都有实现。 今天分享几个数据分析中经常需要用到的重要函数。 掌握这些函数可以帮助我们保持代码整洁并且避免重复造轮子。 本文以二分类任务为例,通常我们的model会输出预测的概率,得到概率后需要进行后续的处理,比如: • 根据阈值,将概率大于某个阈值的label设置为1,小于阈值的设置为0 • 在模型诊断过程中,找出满足某些条件的样本 本文使用的示例数据如下: np.where() 方法可以帮助我们找到array中满足条件的元素的位置。现在我们可以使用np.where()找出所有预测概率大于0.5的的元素了: predict_prob = np.array([0.1,0.3,0.7,0.4,0.9]) np.where(predict_prob >0.5) # output:array([2, 4]),) 如果我们想将所有概率大于0.5的元素替换为1,否则替换为0,该怎么做呢? 一个 简单粗暴的方式 是先用上面的方法分别找出array中概率大于或者小于0.5的索引,然后再对这些位置的元素重新赋值。 其实,np.where() 一个函数就能完成所有的操作,只需要添加两个参数: • 第一个参数是满足条件替换的值 • 第二个参数是不满足条件替换的值 predict_prob = np.array([0.1,0.3,0.7,0.4,0.9]) np.where(predict_prob >0.5,1,0) # output: array([0, 0, 1, 0, 1]) np.argmin()、np.argmax()方法会返回array中最小或最大的元素索引,对示例数据运行结果如下: predict_prob = np.array([0.1,0.3,0.7,0.4,0.9]) np.argmax(predict_prob) # output: 4 np.argmin(predict_prob) # output: 0 我们成功找到了array中最大最小的元素索引,那怎样找到前n个最大的或最小的值呢? predict_prob = np.array([0.1,0.3,0.7,0.4,0.9]) np.argsort(predict_prob) # output: array([0, 1, 3, 2, 4]) np.argsort()方法还支持多维数据的排序,感兴趣的可以自行查看 Numpy官方文档 [1] intersect1d()要做的是,它会找出两个array中的交集,这个函数和前面的几个函数不同,返回的不是索引位置,而是array中的实际值。 本函数我们使用新的 示例数据: arr1 = np.array([1,2,4,4,6]) arr2 = np.array([2,3,4,5,6]) 现在,我们可以使用intersect1d()找出两个数组共同的元素了: np.intersect1d(arr1, arr2) # output: array([2, 4, 6]) Python数据分析教程:Numpy 中不得不知的4个重要函数 标签:ase back 不同 max key alt 排序 元素 交集 原文地址:https://www.cnblogs.com/7758520lzy/p/12725485.html准备工作
导入numpy
import numpy as np
示例数据
predict_prob = np.array([0.1,0.3,0.7,0.4,0.9])
where()
argmin()、argmax()、argsort()
intersect1d()
准备工作
导入numpy
import numpy as np
示例数据
predict_prob = np.array([0.1,0.3,0.7,0.4,0.9])
where()
argmin()、argmax()、argsort()
现在该轮到np.sort()上场了
intersect1d()
上一篇:Python数据类型介绍(二)
文章标题:Python数据分析教程:Numpy 中不得不知的4个重要函数
文章链接:http://soscw.com/index.php/essay/54941.html