【发布时间】:2020-11-26 10:03:20
【问题描述】:
我有以下二维 numpy 数组:
array_a = np.array([[6.2, 2.0, 5.5, 8.0], [6.0, 5.1, 7.1, 8.2], ...])
我还有一个索引列表列表(列表大小不同)代表我想从该数组中选择的值。
wanted_values = [[0,3], [1,2,3], ...]
最后,我想要一个 2d numpy 数组,其中每一行只有与这些索引对应的值。所需的输出如下所示:
np.array([[6.2, 8.0], [5.1, 7.1, 8.2], ...])
我将索引列表转换为 numpy 数组,并警告说“不推荐使用从不规则嵌套序列创建 ndarray”。然后,我将 take 函数应用于 numpy 数组并得到一个错误:
a.take(wanted_values)
TypeError: Cannot cast array data from dtype('O') to dtype('int64') according to the rule 'safe'
我怎样才能达到预期的效果?有没有更好的方法来解决这个问题?
【问题讨论】:
-
如果您提供完整的代码示例,我可以运行它并玩弄它;)
-
你不能有一个不规则形状的numpy数组。
-
删除 numpy,使用列表作为输出
-
我需要稍后将 argmax 函数应用于每一行,所以最好坚持使用 numpy
-
numpy 不是这样工作的
标签: python numpy numpy-ndarray