Targets
包含目标值,Observation
包含观察值。
我希望for循环计算每个观察值的不同目标值的数量,并将它们存储在矩阵obs_array
中,其中行是对象值,列是目标值。
对于我提供的示例,它必须返回:
obs_array = [[3,2],[2 5]]
这意味着对于观测值中的零,目标值中有3乘以0和2乘以1(第一个列表),对于观测值中的零,有2乘以0和5乘以1(第二个列表) 但是循环没有正常工作。你能找到问题并给我解释一下吗?(我是Python新手)
Target = [1,1,1,0,0,1,0,1,1,0,0,1]
Observation = [1,0,1,0,1,1,0,1,1,1,0,0]
target_values = list(set(S))
observation_values = list(set(A))
obs_array = [[0 for x in range(len(observation_values))] for x in range(len(target_values))]
for k in range(len(observation_values)):
for kk in range(len(Observation)):
if observation_values[k] == Observation[kk]:
for kkk in range(len(Target)):
for kkkk in range(len(target_values)):
if Target[kkk] == target_values[kkkk]:
obs_array[k][kkkk]+=1
print(obs_array)
我知道这并不是你问题的答案,但这里有一个解决你问题的有趣方法(部分是为了帮助其他人理解你的要求,因为这个问题很混乱):
编辑:我现在意识到没有必要耍这种把戏。此代码也适用于:
相关问题 更多 >
编程相关推荐