python - numpy 轴数的明确权威解释?

标签 python numpy

我对关于轴在 numpy 中的确切含义以及这些构造如何编号的相互矛盾的解释感到困惑。

这是一种解释:
轴是为一维以上的数组定义的。
一个二维数组有两个对应的轴:
第一个垂直向下穿过行(轴 0),和
第二个水平跨列运行(轴 1)。

所以,在这个 3x4 矩阵中......

>>> b = np.arange(12).reshape(3,4)
>>> b
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

(轴 0)是 3 行
(轴 1)是 4 列

所以规则可能是...

在 MxN 矩阵中,(轴 0)是 M,(轴 1)是 N。

这个对吗?

所以,在一个 3 维矩阵 AxBxC
(轴 0)是 A
(轴 1)是 B
(轴 2)是 C

这个对吗?

最佳答案

你说的都是对的,除了

Axes are defined for arrays with more than one dimension.



轴也为一维数组定义 - 只有其中一个(即轴 0)。

考虑轴的一种直观方法是考虑在一个轴上应用归约运算(例如求和)时会发生什么。例如,假设我有一些数组 x :
x = np.arange(60).reshape(3, 4, 5)

如果我计算 x.sum(0)我正在“崩溃”x在第一个维度(即轴 0)上,所以我最终得到一个 (4, 5)大批。同样,x.sum(1)给我一个(3, 5)数组和 x.sum(2)给我一个(3, 4)大批。
x 单轴的整数索引也会给我一个少一个轴的输出。例如,x[0, :, :]给了我 x 的第一“行” ,其形状为 (4, 5) , x[:, 0, :]给了我第一个形状为 (3, 5) 的“列” , 和 x[:, :, 0]给了我 x 的第三维中的第一个切片有形状(3, 4) .

关于python - numpy 轴数的明确权威解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35210647/

相关文章:

python - 如何获得信号的高低包络

Python 请求导致空白响应

python - 无法从外部主机在 TCP 端口建立连接

python - 如何比较两个 CSV 文件并找出差异?

python - 向 web2py 表单添加额外的验证要求?

python解压二进制数据

python - 根据 Python pandas 中的记录补充挑选元素

python - 神经网络 - 类型错误 : can't multiply sequence by non-int of type 'float'

python - 在 Python 或 SQL 中像求解器一样使用 Excel

python - 来自 x、y 值的 Matplotlib 直方图,日期时间月份作为 bin