正确提取NumPy数组指定行与列的方法
本文详解在NumPy中如何准确提取数组的特定行和列。指出直接通过索引列表提取会导致获取对角线元素而非子矩阵的常见误区,并给出正确的两步切片法:先按行索引筛选,再按列索引筛选,确保获得预期的子数组结果。
NumPy数组行列提取的常见误区
在NumPy中对数组进行行列提取的操作有时显得不够直观,但掌握正确方法是必要的。
以以下示例说明:
a = [[1,2,3],
[4,5,6],
[7,8,9]]
假设需要提取数组a的第2、3行以及第1、2列的数据。
c=[1,2]
d =[0,1]
如果直接写成如下形式:
b = a[c,d]
output:
[4 8]
实际获取的是第2行第1列以及第3行第2列的数据,即对角线元素。
这通常不是我们期望的子矩阵结果。
正确的两步切片法
正确的操作方式应分两步进行:
b = a[c]先取想要的行数据
b = b[:,d]
print(b)
output:
[[4 5]
[7 8]]
首先通过行索引选取目标行,随后对结果数组使用列索引选取目标列,最终得到正确的子矩阵。
以上就是关于如何提取NumPy数组指定行与列的完整解析,希望能为读者提供有效的参考。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









