我对关于轴在 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/