3

我对这个matplotlib示例有疑问。

这是我不明白的部分

def update_line(num, data, line):
    line.set_data(data[...,:num])
    return line,

做什么line.set_data(data[...,:num])

4

2 回答 2

5

这是 numpy 提供的一种特殊语法,用于在多维数组中进行切片。一般语法是a[s1,s2, ... , sn],其中si是用于通常切片或索引序列的表达式,并在第 i 个维度定义所需的切片。例如,a[5,2:3,1::2]

...是在所有维度上获得完整切片的缩短。例如a[...,3]a[:,:,3]ifa是 3D 的缩写。

于 2012-05-03T07:38:43.777 回答
3

它实际上是一个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]])
于 2012-05-03T07:39:45.213 回答