Python替换NumPy数组中大于某个值的所有元素

参考https://blog.csdn.net/qq_42393859/article/details/86524805

arr = np.random.randint(0, 300, (500,500))
# 创建一个500x500, 范围在0到300之间的numpy数组

使用timeit测试语句执行时间, 对多行则使用%%timeit

1. 使用python内置索引

arr[arr > 255] = 255

2. np.minimum(), np.maximum()和np.clip()

对大于255的替换成255
result = np.minimum(arr, 255)
对小于0的替换成0
result = np.maximum(arr, 0)
如果不创建新的数组result, 只做in-place修改, 则使用参数out:
np.minimum(arr, 255, out=arr)
对于上限和/或下限
result = np.clip(arr, 0, 255)
同样有in-place
np.clip(arr, 0, 255, arr)
注意: in-place的修改要更慢一些

3. np.where()

对大于255的使用255替换
np.where(nums > 255, 255, nums)
该方法速度更快

4. np.putmask()

np.putmask(arr, arr > 255, 255)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • import numpy as np 创建ndarray data1 = [6,7.5, 8, 0, 1]arr1...
    陆文斌阅读 843评论 0 1
  • # -*- coding: utf-8 -*- from __future__ import division f...
    小豆角lch阅读 1,211评论 0 0
  • 超高速音视频编码器用法: ffmpeg [options] [[infile options] -i infile...
    吉凶以情迁阅读 4,847评论 0 4
  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 5,330评论 0 18
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,979评论 0 13

友情链接更多精彩内容