美文网首页
Python替换NumPy数组中大于某个值的所有元素

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

作者: D_Major | 来源:发表于2019-04-23 10:02 被阅读0次

    参考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)

    相关文章

      网友评论

          本文标题:Python替换NumPy数组中大于某个值的所有元素

          本文链接:https://www.haomeiwen.com/subject/uwemgqtx.html