Python numpy - 数组的向量化运算

news2025/1/13 13:21:59

目录

一 函数numpy.where

二 数组统计方法

1 基础数组统计方法

 2 布尔值数组的方法

 三 排序

1 函数sort

2 函数np.unique


向量化:利用数组表达式来替代显式循环的方法

一 函数numpy.where

  • 条件逻辑函数  where(condition, x, y)   condition为条件,当满足条件输出x,不满足则输出y
  • 即三元表达式 x if condition else y 的向量化
  • x和y不一定要是数组,可以是标量

利用一个布尔值数组和两个数值数组 举例运算 先生成如下:

import numpy as np
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([TURE,FALES,TRUE,TRUE,FALES])

eg1 用np.where函数,实现如果true就x,否则y

import numpy as np
res=np.where(cond,xarr,yarr)

eg2 用np.where函数,将现有的数组转化成只有2和-2的

(小于等于0的是-2,大于0的2)

import numpy as np
arr=np.random.randn(4,4)
arrnew=np.where(arr>0,2,-2)

 eg3 用np.where函数,仅将现有数组的正值转化为2,其余不变

即else的条件写原来现有的数组名称就好

import numpy as np
arr=np.random.rand(4,4)
arrnew=np.where(arr>0,2,arr)

 

二 数组统计方法

1 基础数组统计方法

 

 2 布尔值数组的方法

 布尔值会被强制为1(True)和0(False)

也适用于非布尔值数组,所有的非0元素都会按True处理

  • sum  用于计算布尔值数组中 正值的个数

import numpy as np
arr=np.random.randn(100)
(arr>0).sum()
  • any 检查数组中是否至少有一个True

  • all   检查是否每个值都是True

import numpy as np
bools=np.array([true,false,ture,false])
bools.any.()
bools.all()

 三 排序

1 函数sort

用从小到大 修改序列,不返回任何值。和参数结合,排序行/列   arr是已生成的数组 arr.sort 

arr.sort()

eg1 一维数组 排序

 eg2 按行 对多维数组中的 每个一维数据段 排序

arr.sort(1)

另: 用 np.sort 返回的是已经排序好的数组拷贝,而不是对原数组按位置排序

2 函数np.unique

返回 去重后的 唯一值 再排序

import numpy as np
#去重后的名字
names=np.array(['bob','joke','bob','amy'])
np.unique(names)

#输出参考 array(['amy','bob','joke'])


#去重后的数值
ints=np.array([1,2,3,5,4,3,3,2])
np.unique(ints)

#输出参考 array([1,2,3,4,5])

 拓展:numpy中的集合函数

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/601714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有限状态机器测试(过渡游览法)

有限状态机器测试(过渡游览法) 测试相关概念—故障类型 行为由转换定义。 故障分为三种类型: 输出错误Output faults:错误的输出是由转换产生的。 状态转移错误State transfer faults:转移到错误的状态。 额外的状态Extra states&#xff08…

医院检验科检验系统(LIS)源码:临检、生化、免疫、微生物

一、检验科检验系统 (LIS)概述:对接HIS,医生工作站能够方便、及时的查阅患者检验报告。 二、检验科检验系统 (LIS)主要功能描述: 1.质控品管理: 医院设备质控(编码、设…

数据结构入门7-2(散列表)

注 本笔记参考:《数据结构(C语言版)(第2版)》 散列表的基本概念 像基于线性表、数表的查找方式,往往都是以关键字的比较为基础的。这种比较方式在遇到结点数量很多的情况时就会暴露其的弊端:需要…

vue3-实战-03-管理后台路由分析搭建和登录模块开发

1-路由的搭建 先分析模块,搭建一些基础的路由信息,我们分析需要登录页面路由,登录成功后展示数据路由,404页面路由,以及我们输入错误的路径的我们需要重定向到404路由。配置好相关路由之后,我们需要在入口文…

基于 ESP32-H2 构建高性价比的安全物联网设备

如今,人们对网联设备安全性的认识和关注不断增加。在欧盟《网络弹性法案》也即将生效的,为网联设备增加硬件层面的安全功能非常重要。 乐鑫 ESP32-H2 致力于为所有开发者提供高性价比的安全解决方案,这款芯片经过专门设计以集成多种安全功能…

【java】java访问https并验证账号密码

java访问https,获取页面或者数据时,需要证书和账号密码的验证。 一 获取CRT证书 获取网站的证书,拿到证书后可能是crt格式,可以使用下面的命令转为p12格式 openssl pkcs12 -export -in Mycert.crt -inkey Mykey.key -out Mycer…

0基础学习VR全景平台篇第35篇:场景功能-细节

本期为大家带来蛙色VR平台,场景管理—细节功能操作。 功能位置示意 一、本功能将用在哪里? 细节功能,用于展示VR漫游作、大像素、高清矩阵作品中细微不容易发现,但却又比较有亮点或者能起到关键作用的画面。 通过在全景图中添加…

javaWeb ssh课程资源网站myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh课程资源网站系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用 B/S模式开发。开发环境为TOMCAT7.…

字节的测试面试题,你觉得很难吗?不是有手就行....

年前的时候,我的一个粉丝跟我说,他在面试美团的自动化测试岗的时候,不幸挂掉了。 越想越可惜,回想面试经过,好好总结了几个点,发现面试没过的主要原因是在几个关键的问题没有给到面试官想要的答案 字节的…

6-HEX, SE,引物荧光标记试剂,胺反应性琥珀酰亚胺酯,广泛用于nucleic acid测序和相关研究

6-HEX, SE | 6-HEX,SE [6-羧基-2,4,4,5,7,7-六氯荧光素,琥珀酰亚胺酯] |CAS:N/A | 纯度:95% (文章资料汇总来源于:陕西新研博美生物科技有限公司小编MISSwu)​ 结构…

Android Cannot resolve symbol 找不到资源解决方案

一、介绍 在android开发中,我们经常会发现依赖了系统提供的库,但是无法引用,或者找不到, Cannot resolve symbol style/Theme.AppCompat.NoActionBar ,报红。这些最经典的无法加载。 出现这个原因并不是你项目的原因&…

手把手教你如何正确永久使用Microsoft Office365?

office2019和office 365有什么区别的呢?为什么越来越多的人更加钟爱office365。简单来说office 2019的零售版本属于一次售出永久使用,价格上比较贵,而且功能上也不会再有更新。而office 365是一种基于云的订阅服务,我们花钱买的是…

Datax同步MySQL到ES

Datax同步MySQL到ES 1、在MySQL中建表2、在ES建立索引3、构建从MySQL到ES的Datax的Json任务4、运行mysql2es.json脚本以下是工作中做过的ETL,如有需要,可以私信沟通交流,互相学习,一起进步 1、在MySQL中建表 建表语句 CREATE TABL…

如何在Flutter 中启用空安全

目录 Step 1: 开启空安全设置 Step 2:检查可升级的三方库 Step 3:升级三方库 Step 4:代码适配支持空安全 Step 1: 开启空安全设置 Flutter 2默认启用了空安全,所以通过Flutter 2创建的项目是已经开启了空安全的检查的,不知道自己是什么版本的可以通…

【MCS-51单片机汇编语言】期末复习总结①——常见指令汇总(题型一)

文章目录 七大寻址方式重要指令转移堆栈加减乘除位操作跳转条件转移子程序常考题型 七大寻址方式 立即寻址:通过一个立即数来指定存储单元的地址,例如#41H;寄存器寻址:Rn(n0~7),A,B&#xff0c…

自学软件测试,一般人我劝你还是算了吧

软件测试自学是完全可以的,但是这句话并不代表人人都可以自学。 想转行软件测试,纯自学会遇到以下8个问题: 1、自学需要很高的自律性,你能做到吗? 2、自学在学习过程中会碰到很多困难,你都能解决吗&#xf…

直播入门手册

直播除了带货,现在越来越成了分享知识,增近主播和粉近距离互动的平台。最近看到抖音上越来越多的主播进行编程经验的分享,这是一个很好的传播知识的方式,以前我们学习编程技术一般看视频,其实视频的互动性没有直播那么…

智能家居数据分析:语音交互为用户偏好模式,使用最高达72%

哈喽大家好,近些年来,智能家居行业的发展无比迅速,同时,最近两年来人工智能技术的不断突破,对智能家居有着无与伦比的推动力。本期将为大家介绍下智能家居的行业形势。 通过数据可视化平台把报表数据处理后展示出来的…

(4)NUC980 RootFs

Buildroot是一个开源的嵌入式Linux系统构建工具,它可以帮助用户自动化构建Linux系统的各个部分,包括Linux内核、库、文件系统、应用程序等。通过Buildroot,用户可以根据需要选择和配置所需的软件包,从而构建一个定制化的Linux系统…

Nginx网站服务——编译安装及系统服务添加

Nginx网站服务——编译安装及系统服务添加 一、Nginx的相关知识1.Nginx的简介2. Apache与Nginx的区别3.Apache的优势4.Nginx的优势 二、Nginx编译安装1.关闭防火墙,将安装nginx所需软件包传到/opt目录下2.安装相关的依赖包3.创建运行用户、组4.编译安装Nginx5.检查、…