gpt4 book ai didi

python - 如果我只切出 1 列与切出多列,为什么 numpy 的行为会有所不同?

转载 作者:行者123 更新时间:2023-12-03 19:08:25 26 4
gpt4 key购买 nike

如果我有一个名为 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com