Python numpy 数组的向量化运算操作方法
作者: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数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!