为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取数组中非零项的索引并使用该索引从另一个数组或列表中获取另一个值

如何获取数组中非零项的索引并使用该索引从另一个数组或列表中获取另一个值

慕村9548890 2023-01-04 13:29:08
我有一个项目,您必须在数组中选择一个非零项并获取其索引。使用这个索引,你必须在另一个数组或列表中找到它对应的值。例如:best_chr = [[1 1 0]] # numpy arrayactivity = [2, 3, 4]代码如下所示:chosen_act = [activity[item] for item in range(len(best_chr)) if item != 0]print(chosen_act)我打算做的是在[1, 1 对于上面的示例]index中找到non-zero项目/值。best_chr然后,使用这个索引,在 中找到它对应的值activity。Expected output:chosen_act = [2, 3]问题是,使用上面的代码,我收到以下错误:TypeError: object of type 'numpy.int32' has no len()任何帮助,将不胜感激!谢谢!
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超12个赞

你可以只使用zip

# best_chr.flatten since it looks like 2-d array
[i for i, j in zip(activity, best_chr.flatten()) if j]

如果您需要使用索引,请使用numpy.flatnonzero

[activity[i] for i in np.flatnonzero(best_chr)]

输出:

[2, 3]


查看完整回答
反对 回复 2023-01-04
  • 1 回答
  • 0 关注
  • 69 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信