python numpy切片表示法(逗号与标准索引)

2024-05-18 18:21:58 发布

您现在位置:Python中文网/ 问答频道 /正文

使用逗号和显式地为更传统的读者分解索引引用之间是否存在性能差异?因为两者的结果似乎是一样的,但后者对某些人来说可能更直观

x = numpy.array([[1,2,3,4],
                 [5,6,7,8]])

comma_method = x[0,1:3] 
>>> numpy.array([2,3])

conventional method = x[0][1:3]
>>> numpy.array([2,3])

Tags: numpy差异传统性能arraymethod直观逗号
2条回答

几乎总是使用逗号,不是因为性能原因,而是因为索引两次并不完全等效:

In [2]: x = numpy.array([[0, 1], [2, 3]])

In [3]: x[:1, :1]
Out[3]: array([[0]])

In [4]: x[:1][:1]
Out[4]: array([[0, 1]])

也就是说,逗号似乎还有一个速度优势:

^{pr2}$

我不知道最慢的和最快的跑有这么大的时差是怎么回事。在

第二种情况效率较低,因为在随后索引的第一个索引之后创建了一个新的临时数组。在

相关问题 更多 >

    热门问题