Python中是否有一种方法可以使另一个具有双精度值的数组具有转换状态的数组?

问题描述 投票:0回答:2

例如,第一个数组[1.2,4.6,3.7,11.2,13,5,18.9,0.3,20.0,26.7,1]中的双精度值现在我想基于状态1、2和3的第一个创建另一个数组对于第一个数组中[0,10)范围内的每个值,在第二个数组中添加值1因此范围[0,10)代表状态1范围[10,20)代表状态2范围[20,30)代表状态3

所以最后,第二个数组看起来像[1,1,1,2,2,2,1,3,3,1]这是一个过渡状态数组,将有助于在python中建立过渡矩阵**

python matrix transition
2个回答
1
投票

如果使用numpy,则使用np.digitize非常简单:

np.digitize

0
投票

如果您不想使用numpy(import numpy as np a = np.array([1.2,4.6,3.7,11.2,13,5,18.9,0.3,20.0,26.7,1]) np.digitize(a, (0,10,20)) # array([1, 1, 1, 2, 2, 1, 2, 1, 3, 3, 1], dtype=int64) )或想显式地看到基本的纯Python实现,请查看以下内容:

see yatu's solution
© www.soinside.com 2019 - 2024. All rights reserved.