我不太清楚 numpy 在执行一些二维数组操作时将结果作为一维或二维数组返回时遵循什么规则。让我们考虑下面的代码
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 将选择什么格式返回结果?
最佳答案
Note that the last line is simply the first two lines combined into one.
不,不是。您在其中添加了一对额外的括号:
f_values = sample_data[[sample_data[:, -1] == c], f]
# ^ ^
把他们拿出来。
关于索引规则,在 documentation 中。它们很长。
关于python - numpy 对于相同的代码返回一维数组和二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36324209/