Numpy 功能十分强大,很多我们想要的复杂操作都有实现。 今天分享几个数据分析中经常需要用到的重要函数。 掌握这些函数可以帮助我们保持代码整洁并且避免重复造轮子。

准备工作

导入numpy

import numpy as np

示例数据

本文以二分类任务为例,通常我们的model会输出预测的概率,得到概率后需要进行后续的处理,比如:

• 根据阈值,将概率大于某个阈值的label设置为1,小于阈值的设置为0 • 在模型诊断过程中,找出满足某些条件的样本

本文使用的示例数据如下:

predict_prob = np.array([0.1,0.3,0.7,0.4,0.9])

where()

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])

argmin()、argmax()、argsort()

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()

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个重要函数相关推荐

  1. Python数据分析 1-5 NumPy中ufunc函数(一)主要介绍NumPy中常用的通用函数:基本数学函数、三角函数和反三角函数和统计类函数

    1 引入NumPy #引入numpy import numpy as np np.__version__ '1.20.1' 2 基本数学函数 NumPy中基本数学函数有加法.减法.乘法.除法.乘方.开 ...

  2. 爱因斯坦求和约定在Python扩展库Numpy中的实现

    推荐教材: <Python数据分析.挖掘与可视化>(慕课版)(ISBN:978-7-115-52361-7),董付国,人民邮电出版社,定价49.8元,2020年1月出版,2021年12月第 ...

  3. Python 数据分析之Numpy

    Python 数据分析之Numpy Python有着大量功能强大的第三方库.这些第三方库可以大大地扩充Python的功能,我们在实际使用中往往也离不开这些第三方库. NumPy是Python的一种开源 ...

  4. Python数据分析训练营——Python数据分析之Numpy

    文章目录 Python数据分析之Numpy 1.Numpy的数组对象及其索引 数组上的数学操作 产生数组 数组属性 索引和切片 多维数组及其属性 多维数组索引 多维数组切片 切片是引用 花式索引 一维 ...

  5. Python数据分析 3.numpy数据科学库

    Python数据分析 3.numpy基础库 1.数组的创建 import numpy as npt1 = np.array([1,2,3,]) print(t1) print(type(t1))t2 ...

  6. Python数据分析之Numpy,Pandas,Matplotlib Pyplot

    文章目录 一.Python数据分析之Numpy 0.数组的引入 1.创建数组 2.数组的属性 3.数组的基本操作 3.1 索引 3.2 切片 3.3花式索引 3.4 "不完全"索引 ...

  7. Python扩展库numpy中where()函数的三种用法

    第一种用法:只给where()函数传递一个数组作为参数,返回其中非0元素的下标. 第二种用法:给where()函数传递一个包含True/False值的数组,返回该数组中True值的下标,结合numpy ...

  8. Python之数据分析(Numpy中的除法和取余、三角函数、ufunc对象的位运算)

    文章目录 一.四种除法 二.取余运算 三.斐波那契数的四种求法 四.坐标变化的三角函数 五.ufunc对象位运算 一.四种除法 1.真除: 结果完全保留,小数部分也保留 1)numpy.true_di ...

  9. Python数据分析之numpy(保姆级教程)

    一.前言 在数据处理中,我们肯定离不开矩阵计算.那么在Python中如何操作矩阵呢? 那就有请今天的主角--numpy 二.前提准备 需要在你使用的Python解释器上,安装numpy包. (1)Wi ...

最新文章

  1. 哈利波特 pdf_干货!哈利波特英文原版pdf免费领,(含音频)词汇量大于新概念!...
  2. Android --- 刚刚进入 Activity 页面的时候无法打开对话框,报错 Unable to add window -- token null is not valid; is your
  3. [scala-spark]5. 伴生类和伴生对象
  4. 主成分分析(PCA)深入剖析+Matlab模拟
  5. 6.Vue Class 与 Style 绑定
  6. 解决IE8IE9 jquery ajaxj 跨域请求失败的问题。
  7. 高性能实践IO之Reactor模式
  8. CSUOJ 1196- Staginner 去爬山
  9. 【Java】用键盘输入若干数字,以非数字字符结束,计算这些数的和和平均值
  10. [PLSQL] 游标学习
  11. Session优缺点
  12. 【读书笔记】代理模式代码(C#)
  13. 【物理应用】基于matlab GUI三相配电网实时仿真【含Matlab源码 1047期】
  14. Myeclipse修改代码提示框背景色
  15. 【技术贴】解决Eclipse编译java源文件之后没有生成class文件|找不到class文件
  16. 最新数据显示:2025年中国将拥有世界最大数据圈
  17. Bug[2] TCP先连接一个错误IP,再次连接会出现连接不上并且报 ALREADY OPENED的提示
  18. 导出Fbx和obj的工具
  19. 苹果id被锁定恢复方法(appleid被锁定怎么解除)
  20. How to Read Scientific Paper??

热门文章

  1. 共用数据库和上传的文件的laravel-admin 和 laravel 项目中文件保存路径的配置
  2. PostgreSQL创建只读用户之后创建的表不能读问题解决
  3. 本地程序部署服务器上出错
  4. Angular2学习笔记(六) Angular2 依赖注入
  5. 小米(MIUI)系统组招聘职位
  6. Node 实现 AES 加密,结果输出为“byte”。
  7. Linux 中显示所有正在运行的进程
  8. windows写文件到ubuntu之samba
  9. jdk1.5-1.7新特性详细介绍
  10. Agile PLM EC Understand the BOM Publishing Process