我真的不知道在执行一些2d数组操作时,numpy遵循什么规则来将结果作为1d或2d数组返回。让我们考虑以下代码

idx_cls_samples = sample_data[:, -1] == c
v_feature = sample_data[idx_cls_samples, f]

f_values = sample_data[[sample_data[:, -1] == c], f]


请注意,最后一行只是前两行合并为一个。

前两行的结果是形式为array([1、2、3,...])的numpy向量,最后一行的结果是array([[1、2、3,...]])而且我认为在两种情况下结果都应该是array([1],[2],[3],...])。我如何预先找出numpy将选择哪种格式返回结果?

最佳答案

请注意,最后一行只是前两行合并为一个。


不,这不对。您在其中插入了另外一对支架:

f_values = sample_data[[sample_data[:, -1] == c], f]
#                      ^                       ^


带他们出去。

至于索引规则,它们在documentation中。他们很长。

关于python - numpy对于同一代码返回1d数组和2d数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36324209/

10-11 18:32