电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python替換NumPy數(shù)組中大于某個值的所有元素實(shí)例

瀏覽:4日期:2022-07-22 11:29:58

我有一個2D(二維) NumPy數(shù)組,并希望用255.0替換大于或等于閾值T的所有值。據(jù)我所知,最基礎(chǔ)的方法是:

shape = arr.shaperesult = np.zeros(shape)for x in range(0, shape[0]): for y in range(0, shape[1]): if arr[x, y] >= T: result[x, y] = 255

有更簡潔和pythonic的方式來做到這一點(diǎn)嗎?

有沒有更快(可能不那么簡潔和/或不那么pythonic)的方式來做到這一點(diǎn)?

這將成為人體頭部MRI掃描窗口/等級調(diào)整子程序的一部分,2D numpy數(shù)組是圖像像素數(shù)據(jù)。

Python替換NumPy數(shù)組中大于某個值的所有元素實(shí)例

最佳解決思路

我認(rèn)為最快和最簡潔的方法是使用Numpy的內(nèi)置索引。如果您有名為arr的ndarray,則可以按如下所示將所有元素>255替換為值x:

arr[arr > 255] = x

我用500 x 500的隨機(jī)矩陣在我的機(jī)器上運(yùn)行了這個函數(shù),用5替換了所有> 0.5的值,平均耗時7.59ms。

In [1]: import numpy as npIn [2]: A = np.random.rand(500, 500)In [3]: timeit A[A > 0.5] = 5100 loops, best of 3: 7.59 ms per loop

次佳解決思路

因?yàn)閷?shí)際上需要一個不同的數(shù)組,arr,其中arr < 255,可以簡單地完成:

result = np.minimum(arr, 255)

更一般地,對于下限和/或上限:

result = np.clip(arr, 0, 255)

如果只是想訪問超過255的值,np.clip和np.minimum(或者np.maximum)對你的情況更好更快。

In [292]: timeit np.minimum(a, 255)100000 loops, best of 3: 19.6 µs per loop In [293]: %%timeit .....: c = np.copy(a) .....: c[a>255] = 255 .....: 10000 loops, best of 3: 86.6 µs per loop

如果要執(zhí)行in-place(即修改arr而不是創(chuàng)建result),則可以使用np.minimum的out參數(shù):

np.minimum(arr, 255, out=arr)

或者

np.clip(arr, 0, 255, arr)

(out=名稱是可選的,因?yàn)閰?shù)的順序與函數(shù)的定義相同。)

對于in-place修改,布爾索引加速了很多(不必分別修改和拷貝),但仍然不如minimum:

In [328]: %%timeit .....: a = np.random.randint(0, 300, (100,100)) .....: np.minimum(a, 255, a) .....: 100000 loops, best of 3: 303 µs per loop In [329]: %%timeit .....: a = np.random.randint(0, 300, (100,100)) .....: a[a>255] = 255 .....: 100000 loops, best of 3: 356 µs per loop

比較來看,如果你想限制你的最大值和最小值,沒有clip將不得不像下面這樣做兩次

np.minimum(a, 255, a)np.maximum(a, 0, a)

要么,

a[a>255] = 255a[a<0] = 0

第三種解決思路

可以通過使用where功能來達(dá)到最快的速度:

例如,在numpy數(shù)組中查找大于0.2的項(xiàng)目,并用0代替它們:

import numpy as npnums = np.random.rand(4,3)print np.where(nums > 0.2, 0, nums)

第四種思路

可以考慮使用numpy.putmask:

np.putmask(arr, arr>=T, 255.0)

下面是與Numpy內(nèi)置索引的性能比較:

In [1]: import numpy as npIn [2]: A = np.random.rand(500, 500) In [3]: timeit np.putmask(A, A>0.5, 5)1000 loops, best of 3: 1.34 ms per loop In [4]: timeit A[A > 0.5] = 51000 loops, best of 3: 1.82 ms per loop

以上這篇Python替換NumPy數(shù)組中大于某個值的所有元素實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 真空泵厂家_真空泵机组_水环泵_旋片泵_罗茨泵_耐腐蚀防爆_中德制泵 | 早报网| 长沙发电机-湖南发电机-柴油发电机供应厂家-长沙明邦智能科技 | 【官网】博莱特空压机,永磁变频空压机,螺杆空压机-欧能优 | CCC验厂-家用电器|服务器CCC认证咨询-奥测世纪 | 破碎机锤头_耐磨锤头_合金锤头-鼎成机械一站式耐磨铸件定制服务 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 数控专用机床,专用机床,自动线,组合机床,动力头,自动化加工生产线,江苏海鑫机床有限公司 | 浙江筋膜枪-按摩仪厂家-制造商-肩颈按摩仪哪家好-温州市合喜电子科技有限公司 | 超声波乳化机-超声波分散机|仪-超声波萃取仪-超声波均质机-精浩机械|首页 | 武汉森源蓝天环境科技工程有限公司-为环境污染治理提供协同解决方案 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 烟台游艇培训,威海游艇培训-烟台市邮轮游艇行业协会 | 山东成考网-山东成人高考网| 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | 高压管道冲洗清洗机_液压剪叉式升降机平台厂家-林君机电 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 氢氧化钙设备, 氢氧化钙生产线-淄博惠琛工贸有限公司 | 中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折! | 短信群发平台_群发短信软件_短信营销-讯鸽科技 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | 希望影视-高清影视vip热播电影电视剧免费在线抢先看 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 猎头招聘_深圳猎头公司_知名猎头公司| 电车线(用于供电给电车的输电线路)-百科 | 噪声治理公司-噪音治理专业隔音降噪公司 | 诚暄电子公司首页-线路板打样,pcb线路板打样加工制作厂家 | 软文发布-新闻发布推广平台-代写文章-网络广告营销-自助发稿公司媒介星 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 阻垢剂-反渗透缓蚀阻垢剂厂家-山东鲁东环保科技有限公司 | 大连海岛旅游网>>大连旅游,大连海岛游,旅游景点攻略,海岛旅游官网 | 挤奶设备过滤纸,牛奶过滤纸,挤奶机过滤袋-济南蓝贝尔工贸有限公司 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 民用音响-拉杆音响-家用音响-ktv专用音响-万昌科技 | 识禅_对禅的了解,从这里开始|