我对这个matplotlib的示例有疑问。
这是我不明白的部分
def update_line(num, data, line):
line.set_data(data[...,:num])
return line,
做什么line.set_data(data[...,:num])
?
这是 numpy 提供的一种特殊语法,用于在多维数组中进行切片。一般语法是a[s1,s2, ... , sn]
,其中si
是用于通常切片或索引序列的表达式,并在第 i 个维度定义所需的切片。例如,a[5,2:3,1::2]
。
这...
是在所有维度上获得完整切片的缩短。例如a[...,3]
,a[:,:,3]
ifa
是 3D 的缩写。
它实际上是一个numpy
符号。在numpy
中,...
(省略号)用作可变数量:
切片的占位符。
来自文档:
省略号扩展为创建与 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]])