【发布时间】:2021-09-08 01:29:26
【问题描述】:
我从how is axis indexed in numpy's array学到了numpy数组的轴指示
文章说,对于二维数组,axis=0 代表数组中的每个列,axis=1 代表数组中的每一行。当我使用 np.mean 时它可以工作,这意味着按 col 的值,但 axis=0 中的 np.delete 不同,它按行删除元素。
import numpy as np
arr = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
'''
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
'''
np.mean(arr, 0)
'''
array([5., 6., 7., 8.])
'''
np.delete(arr,1,axis=0)
'''
array([[ 1, 2, 3, 4],
[ 9, 10, 11, 12]])
'''
我很困惑我是否理解错了?
声明axis=0时,为什么np.mean和np.delete在不同的轴上运行?
【问题讨论】:
-
数组的平均值恰好是第二行中的值,即
(1+5+9)/3 = 5等 -
@TomMcLean
np.mean按列计算值,但np.delete按行计算。 -
描述 1d 或 3d 数组的
axis参数更容易。使用 2d 时,单词描述往往会令人困惑。