无法理解 matplotlib 的示例,其中省略号和冒号可能与索引相关联
Posted
技术标签:
【中文标题】无法理解 matplotlib 的示例,其中省略号和冒号可能与索引相关联【英文标题】:Can't understand a matplotlib's example where there are both ellipsis and colons probably associated with indices 【发布时间】:2012-05-12 16:37:50 【问题描述】:我对这个 matplotlib 的 example 有疑问。
这是我不明白的部分
def update_line(num, data, line):
line.set_data(data[...,:num])
return line,
line.set_data(data[...,:num])
是做什么的?
【问题讨论】:
【参考方案1】:这是 numpy 提供的一种特殊语法,用于在多维数组中进行切片。一般语法是a[s1,s2, ... , sn]
,其中si
是用于通常切片或索引序列的表达式,并在第i 个维度定义所需的切片。例如,a[5,2:3,1::2]
。
...
是获取所有维度的完整切片的缩写。例如,a[...,3]
是 a[:,:,3]
的缩写,如果 a
是三维的。
【讨论】:
【参考方案2】:它实际上是一个numpy
符号。在numpy
中,...
(省略号)用作可变数量的:
切片的占位符。
来自docs:
省略号扩展为 : 进行选择所需的对象数 与 x.ndim 长度相同的元组。只有第一个省略号是 展开后,任何其他都被解释为:。
用法:
In : x = numpy.array(range(8)).reshape(2,2,2)
In : x
Out:
array([[[0, 1],
[2, 3]],
[[4, 5],
[6, 7]]])
In : x[...,0]
Out:
array([[0, 2],
[4, 6]])
In : x[:,:,0]
Out:
array([[0, 2],
[4, 6]])
【讨论】:
以上是关于无法理解 matplotlib 的示例,其中省略号和冒号可能与索引相关联的主要内容,如果未能解决你的问题,请参考以下文章