python - pandas/numpy 的轴与 R 的 MARGIN 相反吗?

标签 python r pandas numpy

将这两件事视为相反的想法是否正确?这一直是我困惑的一个主要原因。

下面是我在 R 和 Python 中查找数据框的列总和的示例。请注意 MARGINaxis 的相反值。

在 R 中(使用 MARGIN=2,即列边距):

m <- matrix(1:6, nrow=2)
apply(m, MARGIN=2, mean)
[1] 1.5 3.5 5.5

在Python中(使用axis=0,即行轴):

In [25]: m = pd.DataFrame(np.array([[1, 3, 5], [2, 4, 6]]))
In [26]: m.apply(np.mean, axis=0)
Out[26]:
0    1.5
1    3.5
2    5.5
dtype: float64

最佳答案

之所以会出现困惑,是因为 apply() 既讨论了应用“超过”哪个维度,也讨论了哪个维度保留。换句话说,当您对行进行 apply() 时,结果是一个向量,其长度是输入中的列数。 Pandas 的文档(但不是 R 的)强调了这种特殊的困惑:

axis : {0 or ‘index’, 1 or ‘columns’}
  0 or ‘index’: apply function to each column
  1 or ‘columns’: apply function to each row

如您所见,0 表示索引(行)维度被保留,列维度被“应用”(从而被消除)。

换句话说,对列的应用是 axis=0MARGIN=2,对行的应用是 axis=1MARGIN=11 值似乎匹配,但这是虚假的:Python 中的 1 是第二个维度,因为 Python 是从 0 开始的。

关于python - pandas/numpy 的轴与 R 的 MARGIN 相反吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47254587/

相关文章:

python - 在朴素贝叶斯(Python、scikit)中使用稀疏矩阵/在线学习

python - 如何从递归函数转换为非递归函数?

python - Django:显示在每个页面上加载页面所花费的时间

r - 在 R 中为函数命名

r - R (windows) 中大栅格的并行处理

python - 如何从数据框中保存 CSV,以在数字列中保留零?

python - 使用 Tensorflow 对象检测的推理时间

python - pandas 中的关键错误

python - Pandas:编辑数据框的一部分,使其影响主数据框

r - xtsExtra 中的颜色选项