首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么用括号和逗号索引numpy数组的行为有所不同?

为什么用括号和逗号索引numpy数组的行为有所不同?
EN

Stack Overflow用户
提问于 2016-06-30 04:27:53
回答 3查看 9.9K关注 0票数 32

我倾向于用括号对numpy数组(矩阵)进行索引,但我注意到,当我想对数组(矩阵)进行切片时,我必须使用逗号符号。为什么会这样呢?例如,

代码语言:javascript
运行
复制
>>> x = numpy.array([[1, 2], [3, 4], [5, 6]])
>>> x
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> x[1][1]
4                 # expected behavior
>>> x[1,1]
4                 # expected behavior
>>> x[:][1]
array([3, 4])     # huh?
>>> x[:,1]
array([2, 4, 6])  # expected behavior
EN

Stack Overflow用户

回答已采纳

发布于 2016-06-30 04:34:03

这是:

代码语言:javascript
运行
复制
x[:, 1]

意思是“沿第一轴取x的所有指标,但沿第二轴只取索引1”。

这是:

代码语言:javascript
运行
复制
x[:][1]

意思是“沿着第一个轴取x的所有索引(所以所有的x),然后沿着结果的第一个轴取索引1”。您正在将1应用到错误的轴上。

x[1][2]x[1, 2]只是等价的,因为用整数索引数组会将所有剩余的轴移到形状的前面,因此x[1]的第一个轴是x的第二个轴。这一点都不概括;您几乎应该始终使用逗号,而不是多个索引步骤。

票数 39
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38113994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档