博客
关于我
利用Python进行数据分析——NumPy(2)
阅读量:121 次
发布时间:2019-02-26

本文共 1712 字,大约阅读时间需要 5 分钟。

通用函数:快速的元素级数组函数

通用函数(ufunc)是NumPy中对数组执行元素级运算的核心机制。它们可以看作是对标量操作的矢量化包装,使得复杂的数据处理任务能够以简洁的方式表达。

一元func

一元ufunc接受单个数组,并对其元素执行操作。常见的例子包括sqrtexp

import numpy as nparr = np.arange(10)print(arr)print(np.sqrt(arr))print(np.exp(arr))

输出结果为:

[0 1 2 3 4 5 6 7 8 9][0.         1.         1.41421356 1.73205081 2.         2.23606798 2.44948974 2.64575131 2.82842712 3.        ][1.00000000e+00 2.71828183e+00 7.38905610e+00 2.00855369e+01 5.45981500e+01 1.48413159e+02 4.03428793e+02 1.09663316e+03 2.98095799e+03 8.10308393e+03]

二元func

二元ufunc接受两个数组,并对它们的元素进行操作。例如addmaximum

x = np.random.randn(8)y = np.random.randn(8)print(x)print(y)print(np.maximum(x, y))

输出结果为:

[0.0749, 0.0974, 0.2002, -0.2551, 0.4655, 0.9222, 0.446 , -0.9337][0.267 , -1.1131, -0.3361, 0.6117, -1.2323, 0.4788, 0.4315, -0.7147][0.267 , 0.0974, 0.2002, 0.6117, 0.4655, 0.9222, 0.446 , -0.7147]

条件逻辑

where函数可以用来将条件逻辑转换为数组操作。例如:

xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])cond = np.array([True, False, True, True, False])result = np.where(cond, xarr, yarr)print(result)

输出结果为:

[1.1, 2.2, 1.3, 1.4, 2.5]

数学与统计方法

NumPy提供了丰富的数学和统计方法来处理数组数据。例如meansumstd

arr = np.random.randn(5, 4)print(arr.mean())print(arr.sum(0))

输出结果为:

0.0628149110848545971.2562982216970919

排序

数组可以通过sort方法进行排序。支持按轴排序:

arr = np.random.randn(8)print(arr.sort())print(arr.sort(1))

输出结果为:

[-1.3147, -0.5425, -0.1349, 0.0185, 0.0968, 0.4678, 0.6903, 0.9879]

唯一化

unique函数用于提取数组中的唯一值:

names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])ints = np.array([3, 3, 3, 2, 2, 1, 1, 4, 4])print(np.unique(names))print(np.unique(ints))

输出结果为:

['Bob', 'Joe', 'Will'][1, 2, 3, 4]

通过这些功能,NumPy让复杂的数据处理变得异常简便。无论是数学计算、条件逻辑还是统计分析,都可以通过高效的数组操作来实现。

转载地址:http://gqyk.baihongyu.com/

你可能感兴趣的文章
OpenCV_ cv2.imshow()
查看>>
opencv——图像缩放1(resize)
查看>>
Opencv——模块介绍
查看>>
OpenCV与AI深度学习 | 2024年AI初学者需要掌握的热门技能有哪些?
查看>>
OpenCV与AI深度学习 | CIB-SE-YOLOv8: 优化的YOLOv8, 用于施工现场的安全设备实时检测 !
查看>>
OpenCV与AI深度学习 | OpenCV图像拼接--Stitching detailed使用与参数介绍
查看>>
OpenCV与AI深度学习 | OpenCV快速傅里叶变换(FFT)用于图像和视频流的模糊检测(建议收藏!)
查看>>
OpenCV与AI深度学习 | SAM2(Segment Anything Model 2)新一代分割一切大模型介绍与使用(步骤 + 代码)
查看>>
OpenCV与AI深度学习 | YOLO11介绍及五大任务推理演示(目标检测,图像分割,图像分类,姿态检测,带方向目标检测)
查看>>
OpenCV与AI深度学习 | YOLOv11来了:将重新定义AI的可能性
查看>>
OpenCV与AI深度学习 | YOLOv8自定义数据集训练实现火焰和烟雾检测(代码+数据集!)
查看>>
OpenCV与AI深度学习 | YOLOv8重磅升级,新增旋转目标检测,又该学习了!
查看>>
OpenCV与AI深度学习 | 使用OpenCV轮廓检测提取图像前景
查看>>
OpenCV与AI深度学习 | 使用Python和OpenCV实现火焰检测(附源码)
查看>>
OpenCV与AI深度学习 | 使用PyTorch进行小样本学习的图像分类
查看>>
OpenCV与AI深度学习 | 使用YOLO11实现区域内目标跟踪
查看>>
OpenCV与AI深度学习 | 使用YOLOv8做目标检测、实例分割和图像分类(包含实例操作代码)
查看>>
OpenCV与AI深度学习 | 使用单相机对已知物体进行3D位置估计
查看>>
OpenCV与AI深度学习 | 初学者指南 -- 什么是迁移学习?
查看>>
OpenCV与AI深度学习 | 十分钟掌握Pytorch搭建神经网络的流程
查看>>