Skip to main content
 首页 » 编程设计

python之NumPy 数组索引

2025年05月04日18wayfarer

我想提取 NumPy 数组的第二列和第三列到第五列,我该怎么做?

A = array([[0, 1, 2, 3, 4, 5, 6], [4, 5, 6, 7, 4, 5, 6]]) 
A[:, [1, 4:6]] 

这显然行不通。

请您参考如下方法:

假设我理解您的意思——明确指定您想要的输出通常是个好主意,因为它并不明显——您可以使用 numpy.r_ :

In [27]: A 
Out[27]:  
array([[0, 1, 2, 3, 4, 5, 6], 
       [4, 5, 6, 7, 4, 5, 6]]) 
 
In [28]: A[:, [1,3,4,5]] 
Out[28]:  
array([[1, 3, 4, 5], 
       [5, 7, 4, 5]]) 
 
In [29]: A[:, r_[1, 3:6]] 
Out[29]:  
array([[1, 3, 4, 5], 
       [5, 7, 4, 5]]) 
 
In [37]: A[1:, r_[1, 3:6]] 
Out[37]: array([[5, 7, 4, 5]]) 

然后您可以根据需要将其展平或 reshape 。 r_ 基本上是生成正确索引的便利函数,例如

In [30]: r_[1, 3:6] 
Out[30]: array([1, 3, 4, 5])