python - numpy 对于相同的代码返回一维数组和二维数组

标签 python arrays numpy

我不太清楚 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/

相关文章:

python - 如何计算批处理数据帧的平均值?

python - 相当于 python 在 bash 中的 textwrap dedent

python - 用 Pandas 创建缓冲区时内存泄漏?

java - 如何获得此 double 组以进行打印而不会出现错误?

pandas - 在 matplotlib 中绘制具有不同数量元素的列表

python - Numpy - 通过测试相邻索引获取索引位置

python - 给定计算的偏导数优化函数

c# - 创建一个列表,然后将其转换为数组

C删除数组元素

python - 在 ubuntu 14.04 中安装 Caffe