Python numpy 數(shù)組的向量化運(yùn)算操作方法
向量化:利用數(shù)組表達(dá)式來替代顯式循環(huán)的方法
一 函數(shù)numpy.where
- 條件邏輯函數(shù) where(condition, x, y) condition為條件,當(dāng)滿足條件輸出x,不滿足則輸出y
- 即三元表達(dá)式 x if condition else y 的向量化
- x和y不一定要是數(shù)組,可以是標(biāo)量
利用一個(gè)布爾值數(shù)組和兩個(gè)數(shù)值數(shù)組 舉例運(yùn)算 先生成如下:
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函數(shù),實(shí)現(xiàn)如果true就x,否則y
import numpy as np res=np.where(cond,xarr,yarr)
eg2用np.where函數(shù),將現(xiàn)有的數(shù)組轉(zhuǎn)化成只有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函數(shù),僅將現(xiàn)有數(shù)組的正值轉(zhuǎn)化為2,其余不變
即else的條件寫原來現(xiàn)有的數(shù)組名稱就好
import numpy as np arr=np.random.rand(4,4) arrnew=np.where(arr>0,2,arr)
二 數(shù)組統(tǒng)計(jì)方法
1 基礎(chǔ)數(shù)組統(tǒng)計(jì)方法
2布爾值數(shù)組的方法
布爾值會(huì)被強(qiáng)制為1(True)和0(False)
也適用于非布爾值數(shù)組,所有的非0元素都會(huì)按True處理
sum 用于計(jì)算布爾值數(shù)組中 正值的個(gè)數(shù)
import numpy as np arr=np.random.randn(100) (arr>0).sum()
- any 檢查數(shù)組中是否至少有一個(gè)True
- all 檢查是否每個(gè)值都是True
import numpy as np bools=np.array([true,false,ture,false]) bools.any.() bools.all()
三 排序
1 函數(shù)sort
用從小到大 修改序列,不返回任何值。和參數(shù)結(jié)合,排序行/列 arr是已生成的數(shù)組 arr.sort
arr.sort()
eg1 一維數(shù)組 排序
eg2按行 對多維數(shù)組中的 每個(gè)一維數(shù)據(jù)段 排序
arr.sort(1)
另: 用 np.sort 返回的是已經(jīng)排序好的數(shù)組拷貝,而不是對原數(shù)組按位置排序
2 函數(shù)np.unique
返回 去重后的 唯一值 再排序
import numpy as np #去重后的名字 names=np.array(['bob','joke','bob','amy']) np.unique(names) #輸出參考 array(['amy','bob','joke']) #去重后的數(shù)值 ints=np.array([1,2,3,5,4,3,3,2]) np.unique(ints) #輸出參考 array([1,2,3,4,5])
拓展:numpy中的集合函數(shù)
到此這篇關(guān)于Python numpy 數(shù)組的向量化運(yùn)算的文章就介紹到這了,更多相關(guān)Python numpy數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pandas自定義選項(xiàng)option設(shè)置
pandas有一個(gè)option系統(tǒng)可以控制pandas的展示情況,一般來說我們不需要進(jìn)行修改,但是不排除特殊情況下的修改需求。本文將會(huì)詳細(xì)講解pandas中的option設(shè)置,感興趣的可以了解下2021-07-07python網(wǎng)絡(luò)應(yīng)用開發(fā)知識(shí)點(diǎn)淺析
在本篇內(nèi)容中小編給學(xué)習(xí)python的朋友們整理了關(guān)于網(wǎng)絡(luò)應(yīng)用開發(fā)的相關(guān)知識(shí)點(diǎn)以及實(shí)例內(nèi)容,需要的朋友們參考下。2019-05-0515個(gè)應(yīng)該掌握的Jupyter Notebook使用技巧(小結(jié))
這篇文章主要介紹了15個(gè)應(yīng)該掌握的Jupyter Notebook使用技巧(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python使用argcomplete模塊實(shí)現(xiàn)自動(dòng)補(bǔ)全
argcomplete?是一個(gè)強(qiáng)大的Python庫,可以大幅改善命令行應(yīng)用程序的用戶體驗(yàn),本文主要介紹了argcomplete模塊的相關(guān)用法,感興趣的小伙伴可以了解下2023-11-11YOLOv5車牌識(shí)別實(shí)戰(zhàn)教程(八)Web應(yīng)用與API開發(fā)
這篇文章主要介紹了YOLOv5車牌識(shí)別實(shí)戰(zhàn)教程(八)Web應(yīng)用與API開發(fā),在這個(gè)教程中,我們將一步步教你如何使用YOLOv5進(jìn)行車牌識(shí)別,幫助你快速掌握YOLOv5車牌識(shí)別技能,需要的朋友可以參考下2023-04-0412個(gè)Pandas/NumPy中的加速函數(shù)使用總結(jié)
在本文中,數(shù)據(jù)和分析工程師?Kunal?Dhariwal?為我們介紹了?12?種?Numpy?和?Pandas?函數(shù),這些高效的函數(shù)會(huì)令數(shù)據(jù)分析更為容易、便捷2022-09-09