倒排在纽比?

2024-05-06 09:16:25 发布

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

Numpy tentative tutorial表明a[ : :-1]是一个相反的a。有人能解释一下我们是怎么到那儿的吗?

我知道a[:]表示a(轴为0)的每个元素。下一个:应该表示从我的理解中跳过(或句点)的元素的数量。


Tags: numpy元素数量tutorial句点tentative
3条回答

正如其他人所指出的,这是一种python切片技术,numpy也正是如此。希望这有助于解释它的工作原理:

最后一点是步长。1表示一次一个元素,而-则相反。

空白表示第一个和最后一个,除非步长为负,在这种情况下,空白表示最后一个和第一个:

In [1]: import numpy as np

In [2]: a = np.arange(5)

In [3]: a
Out[3]: array([0, 1, 2, 3, 4])

In [4]: a[0:5:1]
Out[4]: array([0, 1, 2, 3, 4])

In [5]: a[0:5:-1]
Out[5]: array([], dtype=int64)

In [6]: a[5:0:-1]
Out[6]: array([4, 3, 2, 1])

In [7]: a[::-2]
Out[7]: array([4, 2, 0])

第5行给出一个空数组,因为它试图从第0个元素向后退到第5个元素。
切片不包含“endpoint”(命名为最后一个元素),因此当返回时,第6行未命中0

这不是特定于numpy的,片a[::-1]相当于^{},其中第一个参数是开始索引,第二个参数是结束索引,第三个参数是步骤。Nonefor start或stop的行为与使用序列的开头或结尾的行为相同,而-1for step将以相反的顺序在序列上迭代。

不是努比,是Python。

在Python中,sequence/iterable有一些片段,其语法如下

seq[start:stop:step] => a slice from start to stop, stepping step each time.

所有参数都是可选的,但是必须有一个:才能让Python将其识别为一个片段。

对于step,负值也可以按相反的顺序复制相同的序列/iterable:

>>> L = range(10)
>>> L[::-1] 
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

而numpy像任何一个好的第三方图书馆一样遵循这个“规则”。。

>>> a = numpy.array(range(10))
>>> a[::-1]
array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])

this link

相关问题 更多 >