【发布时间】:2020-10-19 18:21:21
【问题描述】:
我有两个数组 R 和 M。在第一个数组R.shape = (10,7) 中,每一行对应一个对象的状态,每一列是对象在时间上的演变(每个对象在 7 个时间段内)。第二个数组M是每个对象的特征('C', 'SC','HS','HSDO')。
R = np.ones((10,7))
[[1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1.]]
M = ['C', 'C', 'HS', 'C', 'C', 'SC', 'SC', 'HSDO', 'HSDO', 'HSDO']
我想知道如何修改数组R,以便我可以根据M 分配的特征向该行添加一个x 值?
例如:如果我要M=='C',则'C'对应的行加+0.5。
[[1.5 1.5 1.5 1.5 1.5 1.5 1.5]
[1.5 1.5 1.5 1.5 1.5 1.5 1.5]
[ 1. 1. 1. 1. 1. 1. 1.]
[1.5 1.5 1.5 1.5 1.5 1.5 1.5]
[1.5 1.5 1.5 1.5 1.5 1.5 1.5]
[ 1. 1. 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1. 1. 1.]]
就像'SC' 加 0.7、'HS' 加 0.5 和 'HSDO' 加 0.3。
有没有简单的方法可以做到这一点?
【问题讨论】:
-
您尝试了哪些方法,结果如何?例如一个循环,np.where,apply_along_axis?请包含代码以制作minimal reproducible example
-
这听起来像是
Pandas的问题。
标签: python arrays numpy indexing