切片 numpy 数组与选择单个元素 [英] Slicing a numpy array vs selecting a single element

查看:75
本文介绍了切片 numpy 数组与选择单个元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数组:

arr = np.array([[1,2,3], [4,5,6], [7,8,9]])

如果我切片数组 arr[:, :1] 我的结果是 array([[1],[4], [7]]).

If I slice the array arr[:, :1] my result is array([[1], [4], [7]]).

如果我对数组 arr[:, 0] 进行切片,我的结果是 array([1, 4, 7]).

If I slice the array arr[:, 0] my result is array([1, 4, 7]).

为什么会有不同?

推荐答案

:1 是一个切片(恰好长度为 1),所以 numpy 为每一行返回一个列表(第一个暗淡)在你的数组中.这就是为什么你有一个二维数组的原因:你要求一个带有 : 的子数组.

:1 is a slice (which happens to be of length 1) so numpy returns a list for every line (first dim) in your array. This is why you have a 2-dimensional array as a result: you asked for a sub array with :.

0 另一方面是一个索引,因此 numpy 将结果缩小 1 维,结果是值列表(更精确的维数为 1 的数组).

0 on the other hand is an index so numpy shrinks the result by 1 dimension resulting of a list of values (array of dimension 1 more precisely).

这篇关于切片 numpy 数组与选择单个元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆