import numpy as np
import imageio
import time
#小于8的数等于2
#数据大小是3653*2705的二维矩阵
grid = imageio.imread("wp2001.tif")
str_time = time.time()
#最笨的方式 多重循环 耗时: 129.25516891479492
for i in range(0, len(grid)):
for j in range(0, len(grid[0])):
if grid[i][j] < 8:
grid[i][j] = 2
#更快更简便的三种方式:
#方式一 内置索引 耗时: 0.01738429069519043
grid[grid < 8] = 2
#方式二 np.where 耗时: 0.03576922416687012
grid = np.where(grid < 8, 2, grid)
#方式三 np.putmask 0.012608051300048828
np.putmask(grid, grid < 8, 2)
print("耗时:", time.time() - str_time)
print(grid)
Python 将多维数组中大于N的数据替换成其他数
最新推荐文章于 2022-05-22 22:15:40 发布