gpt4 book ai didi

python - 用大数组中的值 c 替换从值 a 到 b 的 float

转载 作者:太空宇宙 更新时间:2023-11-04 06:22:13 25 4
gpt4 key购买 nike

我有一个带 float 的数组 (2000 * 2000),我想对数字进行分类。因此,10 到 20 之间的所有数字都应替换为 15,20 到 60 之间的所有数字都应替换为 40,依此类推。

我用几个 if 语句写了一些循环遍历所有行和列的东西……但它需要永远运行大型数组。有人知道如何加快速度吗?

for a in range(grid.shape[0]): #grid is an array
for b in range(grid.shape[1]):
for c in range(len(z)):
if z[c][0] <= grid[a][b] < z[c][1]: # z is a list containing [lower,upper,replace_value]
grid[a][b]=z[c][2]

最佳答案

这样的事情对你有用吗?

>>> import numpy as np
>>> grid = np.random.random((5,5)) * 100
>>> z = np.array([0, 10, 20, 60, 100.])
>>> replace_value = np.array([np.nan, 5., 15., 40., 80.])

>>> grid = replace_value[z.searchsorted(grid)]
>>> print grid
[[ 15. 40. 80. 80. 15.]
[ 80. 40. 15. 80. 80.]
[ 15. 80. 5. 15. 40.]
[ 40. 80. 5. 5. 80.]
[ 40. 5. 80. 5. 40.]]

关于python - 用大数组中的值 c 替换从值 a 到 b 的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11367191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com