如果我有一个名为 data 的 numpy 数组,例如:
[[ 3.6216 8.6661 -2.8073 -0.44699 0. ]
[ 4.5459 8.1674 -2.4586 -1.4621 0. ]
[ 3.866 -2.6383 1.9242 0.10645 0. ]]
我想获得最后一列,我可以通过以下方式将其切片:data[:,4]
但是,输出会自动“展平”:[0. 0. 0]
我的期望是它应该给我这个:[[0]
[0]
[0]]
我知道我可以轻松地 reshape 它,但我想了解为什么当我选择一列时 numpy 会自动展平它。如果我选择多列:data[:,:4]
我得到了我的期望:[[ 3.6216 8.6661 -2.8073 -0.44699]
[ 4.5459 8.1674 -2.4586 -1.4621 ]
[ 3.866 -2.6383 1.9242 0.10645]]
如果我只切出 1 列与切出多列,为什么 numpy 的行为会有所不同?有什么方法可以使 numpy 的行为切出 1 列而不是展平数组?
最佳答案
当您使用单个数字编制索引时,维度将被消除。这就是 NumPy 的设计方式。所以这:
data[:,4]
意思是“给我第 4 列,并将维数减少 1。”而这:data[:,4:5]
意思是“给我第 4 列,但保持维数不变。”
关于python - 如果我只切出 1 列与切出多列,为什么 numpy 的行为会有所不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62978096/