Skip to main content
 首页 » 编程设计

python之带有负索引的numpy数组索引

2025年05月04日16myhome

首先,我将一个标量时间序列存储在一个 numpy 数组中:

ts = np.arange(10) 

这是

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 

假设我想从 ts 中提取一系列向量 (2,1,0), (3,2,1) , (4,3,2) 等,我可以想到下面的代码来做:

for i in range(len(ts)-2): 
    print(ts[2+i:i-1:-1]) 

但是,当i=0时,上面的代码返回一个空数组而不是[2,1,0],因为循环体会变成

print(ts[2:-1:-1]) 

中间的 -1 会造成麻烦。

我的问题是:有没有办法让[2,1,0]的索引工作?

请您参考如下方法:

你需要使用None:

ts = np.arange(10) 
 
for i in range(len(ts)-2): 
    print(ts[2+i:None if i == 0 else i - 1:-1])