numpy之向量化函数

Numpy3——通用函数、向量化、基础的统计计算 numpy的通用函数,向量化,统计计算函数 阅读详情

numpy的一个很大的优点就是通过向量化,大幅提高运算效率,这里介绍一些常用的向量化函数。

一、where函数

numpy.where函数是三元表达式x if condition else y的向量化版本,常用于根据一个数组来生成一个新的数组。

假设有两个数值数组和一个布尔值数组:

a = np.array([2, 4, 9, 16])
b = np.array([1, 3, 10, 17])
c = np.array([True, False, False, True])

当c中的元素为True时,取a中的元素,否则取b中的元素,那么就可以用numpy.where函数:

r = np.where(c, a, b)
r # 结果:array([ 2,  3, 10, 16])

其中,a、b可以为数组或标量。

二、数学和统计方法

许多关于计算整个数组统计值或关于轴向数据的数学函数,可以作为数组类型的方法被调用。像mean、sum等函数可以接收一个可选参数axis,这个参数可以用于计算给定轴向上的统计值,形成一个下降一维度的数组,即axis=0表示列上的统计值,axis=1表示行上的统计值:

对于下列数组:

a = np.array([[1, 2, 3, 4], [3, 4, 5, 6], [5, 6, 7, 8], [7, 8, 9, 10]])
a # 结果:array([[ 1,  2,  3,  4],
       			 [ 3,  4,  5,  6],
       			 [ 5,  6,  7,  8],
       			 [ 7,  8,  9, 10]])

可计算平均值:

a.mean() # 16个数据的平均值,结果:5.5
a.mean(0) # 每列的平均值,结果:array([4., 5., 6., 7.])
a.mean(1) # 每行的平均值,结果:array([2.5, 4.5, 6.5, 8.5])

在这里插入图片描述

三、布尔值数组的方法

布尔值会被强制为1(True)和0(False),因此,sum通常可以用于计算布尔值数组中的True的个数:

a = np.array([True, False, False, True])
a.sum() # 结果:2

除此之外,对于布尔值数组,还有两个非常有用的方法:any和all。any检查数组中是否至少有一个True,而all检查是否每个值都是True:

a = np.array([True, False, False, True])
a.any() # 结果:True
a.all() # 结果:False

四、排序

和Python的内建列表类型相似,NumPy数组可以使用sort方法按位置排序:

a = np.array([1, 0, 4, 2])
a.sort()
a # 结果:array([0, 1, 2, 4])

也可以在多维数组中根据传递的axis值,沿着轴向对每个一维数据段进行排序:

a = np.array([[1, 3, 2], [2, 1, 3]])
a # 结果:array([[1, 3, 2],
       			[2, 1, 3]])
       			
a.sort(axis=1) # 按照每一行进行排序
a # 结果:array([[1, 2, 3],
      			 [1, 2, 3]])
     
a.sort(axis=0) # 按照每列进行排序
a # 结果:array([[1, 1, 2],
       			 [2, 3, 3]])

五、集合操作

NumPy包含一些针对一维ndarray的基础集合操作。常用的一个方法是np.unique,返回的是数组中唯一值排序后形成的数组:

a = np.array([1, 3, 2, 3, 1, 2])
np.unique(a) # 结果:array([1, 2, 3])

在这里插入图片描述

Python函数图像绘制全攻略:从NumPy向量化到Matplotlib高级可视化 函数图像可视化是数据分析和科学计算中的基础技能,它通过将抽象的数学关系转化为直观图形,帮助理解算法行为、验证模型和展示数据趋势。其核心原理在于将连续函数离散化为数据点,再通过图形库渲染成曲线或曲面。在Python生态中,NumPy提供了高效的向量化数组运算,能快速生成密集采样点,而Matplotlib则作为绘图的事实标准,提供了从基础折线到复杂3D曲面的完整工具链。这一技术组合在机器学习、工程仿真和科研可视化中价值显著,例如用于绘制softmax函数图像分析分类概率分布,或可视化tensor数据理解高维特征 阅读详情

相关推荐

全志T133-s3(Tina Linux)下RTL8723DS WiFi驱动移植与调试实战

本文详细介绍了在全志T133-s3平台(Tina Linux)上移植RTL8723DS WiFi驱动的完整流程,包括硬件连接、驱动源码获取、内核配置、系统适配、设备树配置以及常见问题排查。通过实战案例,帮助开发者快速解决SDIO接口通信、固件加载、电源管理等关键问题,实现稳定的WiFi功能。

weixin_30505225的博客 506

NumPy的函数向量化功能之极简介绍

介绍NumPy中两个提供对普通的Python函数实现向量化功能的函数vectorize()和frompyfunc()的使用方法

chenxy_bwave的专栏 4546

spm FMRI 各种小问题合集

预处理 1、预处理结果从normalize之后开始头歪、变形 问题描述:如下图 原因:DICOM2NIfTI时必须检查对应的T1像。下面是两种错误形式,第一种容易发现,第二种容易忽视,大脑失状位左右颠倒。 解决:重新转了一回格式,建议用SPM fmri进行格式转换。之前是用MRIconvert转换的,用了两台电脑,有的T1结果是对的,不确定什么原因产生的错位,操作都是一样的。 2、Check reg大脑图片边缘出边框 问题描述: 原因:应该是图片排版导致的,单独check就会发现大脑是全的。 解决

weixin_44669441的博客 1675

【Numpy】vectorize将函数向量化

numpy.vectorize(pyfunc, otypes=None, doc=None, excluded=None, cache=False, signature=None) 用法:np.vectorize(函数)(待函数处理的数据) Parameters: pyfunc:python函数或方法 otypes:输出数据类型。必须将其指定为一个typecode字符串或一个数据类型说明符列表。每个输出应该有一个数据类型说明符。 doc:函数的docstrin...

littlemichelle 7008

山景BP10_128DBG开发板ADC_Key驱动

最近在学习山景BP10_128DBG开发板,想使用开发板上的按键。看了看原理图和之前用过的按键好像有点不一样。常见的按键都是判断IO口是否被拉低或拉高来判断按键是否被按下。山景BP10_128DBG开发板上的按键是ADC按键,每个按键按下之后ADC的采样值是不同的,通过ADC采样回来的值进而判断哪个按键按下。这种方式核心思想就是用一个ADC通道来节约IO口,对于IO紧张的芯片是一个不错的解决思路。

weixin_56646002的博客 1308

车载以太网抓包实战:100BASE-T1/1000BASE-T1高效监控方案解析

本文深入解析了车载以太网100BASE-T1/1000BASE-T1的高效抓包监控方案。针对智能汽车开发中的故障排查与性能测试需求,详细对比了交换机镜像、TAP分流和捕获模块三大主流方案的原理、核心优势与适用场景,并提供了基于实战经验的选型指南与操作避坑要点,帮助工程师精准定位网络问题。

desk3的博客 426

Numpy库学习——向量表示

在机器学习和深度学习的编程过程中,为了提高程序的运行速度,通常将模型表达式转换为向量表达式(向量化),即利用矩阵运算思想提高运行效率。那么,在Python中究竟如何利用Numpy库定义一个向量,以及如何判断否为向量呢? (一)Python中向量的特征 通常情况下,Python中向量和数组之间界限比较模糊,很多时候是通用的,但是在有时候数组不一定能够表示向量,比如,利用Numpy中random模块中的randn函数生成的一维数组,既不是行向量,也不是列向量,而是秩为1的数组: 上述秩为1的一维数组仅有一个方

baicaiBC3的博客 1337

24届数字IC设计/验证秋招总结贴——先看这个

为方便快速进行查找该专栏的内容,将所有内容链接均放在此篇博客中整理不易,欢迎订阅~~

qq_42135020的博客 8406

numpy.where():ndarray中的条件判断语句

numpy.where函数是三元表达式x if condition else y的向量化版本。

m0_58830154的博客 1308

多角度模板匹配的模板创建技巧

基于形状的模板匹配多角度创建技巧

manuoo的专栏 3402

《用 AI 赋能医药科研创新》目录(持续更新)

本专栏旨在指导医学科研和药物研发人员运用AI技术提升研究效率。内容包括:利用AI分析文献、识别研究热点、自动生成研究草稿;在新药研发中,通过AI优化临床方案设计、受试者筛选等环节;介绍AI理论基础如大语言模型、提示词工程学及智能体技术发展历程。专栏采用5000-9000字的长文形式,系统讲解AI在医药研发各环节的应用方法,帮助研究者缩短周期、降低成本,推动医药研发进入智能化新阶段。

MD Code 498

【知识点】np.where()用法

传递给np.where 的参数既可以是同等大小的数组,也可以是标量。当不传递参数,只传递条件时,输出的是满足条件的坐标。

mzy20010420的博客 4万+

【七.三维视觉与视频分析】【1.点云处理:PointNet++/PointTransformer】

各位老铁,今天咱们要聊的可不是普通的二维图像处理,而是三维视觉领域最硬核的技术——点云处理。从最早的PointNet到如今的PointTransformer,这场技术进化堪比三维版的"像素革命"。今天咱们就深入解剖两大里程碑:PointNet++和PointTransformer,保证让你看完全文就能在点云领域横着走!想象一下,你抓了把沙子撒在空中,每粒沙子的位置都是三维坐标——这就是点云的典型形态。最后送大家一句话:点云处理就像在三维宇宙中寻找星辰的轨迹,既要望远镜的宏观视野,也要显微镜的细致入微。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 473

【机器学习】【Numpy】函数向量化运算的多种方法function/lambda + numpy.frompyfunc()/map和numpy.vectorize()

此文章的需求来自:逻辑回归的算法实现,numpy.frompyfunc()函数的使用1.什么是函数的向量化1.1函数的一般使用我们有如下的一个自定义函数def magic(a, b): if a > b: return a + b else: return a - b使用时我们只能单变量传入调用a = 1 b = 2 ret = mag...

蔚蓝的天空Tom 7326

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

numpy向量化函数

向量化函数 自定义的 sinc 函数: import numpy as np def sinc(x): if x == 0.0: return 1.0 else: w = np.pi * x return np.sin(w) / w 作用于单个数值: sinc(0.0)   1.0   sinc(3.0) ...

Fabio的博客 2342

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

将python函数向量化:numpy.vectorize

vectorize 函数 Numpy的 vectorize 函数能够实现将普通的python函数转化成具有向量化的功能。简单来说就是,如果一个python函数只能对单个元素进行某种处理操作,经过vectorize 转化之后,能够实现对一个数组进行处理。实例如下: def myfunc(a, b): ... "Return a-b if a>b, otherwise return...

NDHuaErFeiFei的博客 1767

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

np.frompyfunc()函数的使用 Numpy | 函数向量化

python自定义函数并调用: def func_x(a): y = a + 1 return y print(func_x(1)) # 调用 # 结果: # 2 但是如果a不是一个数,而是一个向量/数组呢?这时候就需要借助numpy中的通用函数np.frompyfunc(func, 1, 1) 这里的参数func指的是你要使用的函数,第二个参数为func中的参数个数,第三个参数为func...

kudou1994的博客 1万+

【python】详解numpy.vectorize的使用,将函数向量化

首先看一下文档: numpy.vectorize(pyfunc, otypes=None, doc=None, excluded=None, cache=False, signature=None) Parameters: pyfunc :python函数或方法 otypes : 输出数据类型。必须将其指定为一个typecode字符串或一个数据类型说明符列表。每个输出应该有一个数据类型说明符。...

brucewong0516的博客 5万+

详解numpy.vectorize的使用,将函数向量化

首先看一下文档: numpy.vectorize(pyfunc, otypes=None, doc=None, excluded=None, cache=False, signature=None) Parameters: pyfunc :python函数或方法 otypes : 输出数据类型。必须将其指定为一个typecode字符串或一个数据类型说明符列表。每个输出应该有一个数据类型说明符...

bbbeoy的专栏 2835

用 Python+Numpy+scipy 執行 Matlab 的矩陣計算 4 函數向量化 function vectorized

之前的系列是介紹, 向量與向量, 或是 向量與矩陣, 矩陣與矩陣 的加減乘除次方, 排序等運算, 這篇我們討論 如果有一個函數 $f(x)$ 作用在向量或是矩陣 x, 會遇到的狀況.

m0_47985483的博客 590

吴恩达《神经网络和深度学习》第二周编程作业—numpy入门,函数向量化实现

吴恩达《神经网络和深度学习》课程作业—numpy入门,函数向量化实现1 使用numpy构建基本函数1.1 sigmoid function和np.exp()1.2 Sigmoid gradient1.3 重塑数组1.4 行标准化1.5 广播和softmax函数2 向量化2.1 向量和矩阵的点积、内积和对应元素逐个相乘运算2.2 实现L1和L2损失函数 做完该作业将掌握的技能:   ∙\bullet∙ 会使用numpy,包括函数调用及向量矩阵运算   ∙\bullet∙ 理解Python中“广

Roar冷颜的博客 5331

学习numpy函数向量化,np.vectorize

学习numpy函数向量化,np.vectorize

像风一样自由的博客 1522

Python NumPy - 通用函数 ufunc 的向量化运算优势

通用函数是 NumPy 中的一种特殊函数类型,它们对数组中的每个元素执行相同的操作,并且能够自动处理不同形状的数组。简单来说,ufuncs 就是那些可以"广播"到整个数组的函数。# 创建一个数组# 使用 ufunc 进行向量化操作result = np.sqrt(arr) # 对每个元素开平方根print("原数组:", arr)print("开方结果:", result)# 比较传统的循环方式print("传统方法结果:", traditional_result)

千淘万漉虽辛苦,吹尽狂沙始到金 7567

向量化函数:pybind11自动应用NumPy数组

在科学计算和数据分析领域,NumPy数组的高效处理是Python生态系统的核心优势。然而,当我们需要将C++高性能代码与Python的NumPy数组无缝集成时,常常面临复杂的类型转换和循环处理问题。pybind11的`vectorize`功能正是为解决这一痛点而生,它能够自动将标量函数转换为支持NumPy数组操作的向量化函数。 本文将深入探讨pybind11的向量化功能,通过详细的代码示例、流程...

gitblog_00208的博客 818

Python吴恩达深度学习作业 1 -- Numpy入门与函数向量化

Numpy 基础 大家好,这里是你们的第一个作业,即使你之前没有用过python,这个作业也会帮助你熟悉接下来会用到的功能 操作指南: 请使用python3 避免使用for循环,除非题目里要求 不要更改(# GRADED FUNCTION [function name])的注释 写完代码,运行下面的cell确认你的输出是对的 做完这个作业,你能学会: 用ipython notebook 用numpy,包括函数调用及向量矩阵运算 理解“广播”的概念 向量化代码 让我们开始吧! 关于iPytho

qq_41476257的博客 782

numpy函数向量化,np.vectorize

numpy函数向量化

Cretheego的博客 397
上一篇: numpy之通用函数
下一篇: numpy之矩阵操作
米法·
博客等级 码龄8年 179粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值