我正在阅读一些代码,看到" list[:,i] for i in range(0,list))......"我很困惑逗号在那里做什么,:,和谷歌没有提供答案,因为你不能谷歌标点符号。任何帮助都非常感谢!
" list[:,i] for i in range(0,list))......"
:,
bq3bfh9z1#
您现在看到的是numpy多维数组切片。逗号标记一个元组,读作[(:, i)],numpy数组解释为:使用:端对端(所有行)切片的第一个维,则对于每行,i选择 * 一 * 列。请参阅numpy教程中的索引、切片和迭代。
numpy
[(:, i)]
:
i
ef1yzkbh2#
我不想剽窃Martijn的答案,但我也对此感到困惑,所以我自己写了一个小的getitem浏览器来显示发生了什么。Python给getitem一个slice对象,对象可以决定如何处理它。多维数组也是元组。
>>> class X(object): ... def __getitem__(self, name): ... print type(name),name ... >>> x=X() >>> x[:,2] <type 'tuple'> (slice(None, None, None), 2) >>> x[1,2,3,4] <type 'tuple'> (1, 2, 3, 4) >>>
2条答案
按热度按时间bq3bfh9z1#
您现在看到的是
numpy
多维数组切片。逗号标记一个元组,读作
[(:, i)]
,numpy
数组解释为:使用:
端对端(所有行)切片的第一个维,则对于每行,i
选择 * 一 * 列。请参阅
numpy
教程中的索引、切片和迭代。ef1yzkbh2#
我不想剽窃Martijn的答案,但我也对此感到困惑,所以我自己写了一个小的getitem浏览器来显示发生了什么。Python给getitem一个slice对象,对象可以决定如何处理它。多维数组也是元组。