我真的不知道在执行一些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/