numpy 反向更改枚举错误

huwehgph  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(126)

我必须用枚举来改变一个数组。它是由0. 0025步组成的,但是因为我使用的方法,它会稍微改变。所以它看起来像这样:

[0, 0]
[0.002499989, 1]
[0.0049989, 2]
[0.00749989, 3]
[0.0103, 4]

我不能把它们四舍五入到小数点后的第四位,因为在数组的末尾,它们会明显地变大,所以最后一个值是21. 1892而不是21. 1875。
所以我尝试了以下方法:

def enumeration(data):
 data = np.round_(data[:,0], 4) - (np.round_(data[:,0], 4)%0.0025)
 return data

Whick适用于所有值,但可被0.0075除尽的值除外,例如0.0075、0.015、0.0225等。这些值将更改为之前的值,例如0.0075 -〉0.005、0.015 -〉0.0125、0.0225 -〉0.02
我不知道为什么会这样,如果有人能给我解释一下,那就太好了。

ukqbszuj

ukqbszuj1#

一种解决方案是直接将列表构建为0.0025的倍数:

data = np.array([[0.0025*i, i] for i in range(n)])

相关问题