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

python – 为什么用括号和逗号对索引的numpy数组的行为有所不同?,第1张

概述我倾向于使用括号来索引numpy数组(矩阵),但我注意到当我想切片数组(矩阵)时我必须使用逗号表示法.为什么是这样?例如, >>> x = numpy.array([[1, 2], [3, 4], [5, 6]])>>> xarray([[1, 2], [3, 4], [5, 6]])>>> x[1][1]4 # expected 我倾向于使用括号来索引numpy数组(矩阵),但我注意到当我想切片数组(矩阵)时我必须使用逗号表示法.为什么是这样?例如,

>>> x = numpy.array([[1,2],[3,4],[5,6]])>>> xarray([[1,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
解决方法 这个:

x[:,1]

表示“沿第一个轴取x的所有索引,但沿第二个轴仅取索引1”.

这个:

x[:][1]

表示“沿第一个轴取x的所有索引(所以x全部为x),然后沿结果的第一个轴取索引1”.您将1应用于错误的轴.

x [1] [2]和x [1,2]只是等价的,因为用整数索引数组会将所有剩余的轴移向形状的前面,因此x [1]的第一个轴是x的第二个轴.这根本没有概括;你应该几乎总是使用逗号而不是多个索引步骤.

总结

以上是内存溢出为你收集整理的python – 为什么用括号和逗号对索引的numpy数组的行为有所不同?全部内容,希望文章能够帮你解决python – 为什么用括号和逗号对索引的numpy数组的行为有所不同?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1191104.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存