Python numpy  数组的向量化运算操作方法

 更新时间:2023年06月06日 15:40:58   作者:Venassa佳  
这篇文章主要介绍了Python numpy数组的向量化运算操作方法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

一 函数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中的集合函数

到此这篇关于Python numpy 数组的向量化运算的文章就介绍到这了,更多相关Python numpy数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python短信轰炸的代码

    Python短信轰炸的代码

    这篇文章主要介绍了Python短信轰炸的代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Python flask项目入门教程

    Python flask项目入门教程

    flask 是一门使用 python 编写的后端框架,这篇文章主要介绍了Python flask项目入门教程,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • Pandas自定义选项option设置

    Pandas自定义选项option设置

    pandas有一个option系统可以控制pandas的展示情况,一般来说我们不需要进行修改,但是不排除特殊情况下的修改需求。本文将会详细讲解pandas中的option设置,感兴趣的可以了解下
    2021-07-07
  • python网络应用开发知识点浅析

    python网络应用开发知识点浅析

    在本篇内容中小编给学习python的朋友们整理了关于网络应用开发的相关知识点以及实例内容,需要的朋友们参考下。
    2019-05-05
  • 15个应该掌握的Jupyter Notebook使用技巧(小结)

    15个应该掌握的Jupyter Notebook使用技巧(小结)

    这篇文章主要介绍了15个应该掌握的Jupyter Notebook使用技巧(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Python检验用户输入密码的复杂度

    Python检验用户输入密码的复杂度

    这篇文章主要介绍了Python检验用户输入密码的复杂度,在用户设置密码的时候检测输入的密码大小写数字等,需要的朋友可以参考下
    2023-04-04
  • Python使用argcomplete模块实现自动补全

    Python使用argcomplete模块实现自动补全

    argcomplete 是一个强大的Python库,可以大幅改善命令行应用程序的用户体验,本文主要介绍了argcomplete模块的相关用法,感兴趣的小伙伴可以了解下
    2023-11-11
  • YOLOv5车牌识别实战教程(八)Web应用与API开发

    YOLOv5车牌识别实战教程(八)Web应用与API开发

    这篇文章主要介绍了YOLOv5车牌识别实战教程(八)Web应用与API开发,在这个教程中,我们将一步步教你如何使用YOLOv5进行车牌识别,帮助你快速掌握YOLOv5车牌识别技能,需要的朋友可以参考下
    2023-04-04
  • 12个Pandas/NumPy中的加速函数使用总结

    12个Pandas/NumPy中的加速函数使用总结

    在本文中,数据和分析工程师 Kunal Dhariwal 为我们介绍了 12 种 Numpy 和 Pandas 函数,这些高效的函数会令数据分析更为容易、便捷
    2022-09-09
  • 深入了解Python 中线程和进程区别

    深入了解Python 中线程和进程区别

    这篇文章主要介绍了深入了解Python 中线程和进程区别,一个进程由一个或者多个线程组成,线程是一个进程中代码的不同执行路线。切换进程需要的资源比切换线程的要多的多,下面来了解更多的详细内容,需要的小伙伴可以参考一下
    2022-03-03

最新评论