NumPy索引和切片

NumPy索引和切片

NumPy索引和切片

  ndarray 对象的内容可以通过索引或切片来访问和修改,就像 Python 的内置容器对象一样。如前所述,ndarray 对象中的项目遵循从零开始的索引。提供三种类型的索引方法 -字段访问、基本切片和高级索引。

NumPy索引和切片
NumPy索引和切片

  基本切片是 Python 对 n 维切片的基本概念的扩展。Python slice 对象是通过将start 、 stop和step参数提供给内置slice函数来构造的。将此切片对象传递给数组以提取数组的一部分。

  推荐:如何在Python中创建表格

Numpy数组索引

一维数组
numpy索引
NumPy索引和切片

  一维 numpy 数组的索引从 0 开始。这意味着第一个元素的索引为 0。第二个元素的索引为 1,第三个元素的索引为 2,依此类推。比方说,我想打印数字 7(这是第二个元素)。我通过用方括号中的 1索引数组“arr”来得到它

import numpy as np
a = np.array([4,7,2])

print(a[1]) # 7
二维数组
numpy二维数组索引
NumPy索引和切片

  要从二维数组中获取单个元素,我必须提供两个索引,例如,要从该数组中获取数字 5,您必须使用第一个索引然后是第二个索引来索引该数组。

import numpy as np
a = np.array([[2,3,4],
            [1,2,5],
            [3,4,3]])
print(a[1,2]) # 5
三维数组
numpy索引三维数组
NumPy索引和切片

  对于三维或多维数组,您必须为每一维提供一个索引。第一个索引总是选择最外面的方括号内的元素。通过这种逻辑,您可以计算出任意数组中索引的顺序。假设我想从这个数组中检索数字 10,从完整的数组开始,选择包含你想要的数字的部分,把剩下的扔掉。

import numpy as np
a = np.array([[[2,1],[4,5],[6,2]],
            [[3,4],[7,6],[10,2]]])

print(a[1,2,0]) # 10

  推荐:NumPy Ndarray对象

Numpy数组切片

一维数组
numpy切片一维数组
NumPy索引和切片

  为了对一维数组进行切片,我提供了一个以分号 (:) 分隔的开始编号和结束编号。然后范围从起始编号开始,到结束编号​​前一

import numpy as np
a = np.array([2,3,1,5,6])
print(a[1:4])  # [3,1,5]
二维数组

  对二维数组进行切片时,我想结果是所选行(第一个索引)和列(第二个索引)之间的交集。

import numpy as np
a = np.array([[2,3,4,3,6],
            [1,2,5,7,5],
            [3,4,3,3,5],
            [5,6,3,2,1],
            [3,1,4,5,6]])
print(a[1:3,1:]) #[[2 5 7 5]
                    [4 3 3 5]]
三维数组

  对 3 维或更多维数组进行切片遵循与 2D 数组相同的逻辑,

numpy三维数组切片
NumPy索引和切片

  以下方式切片 3D 或更多维数组。我从最外面的括号开始,根据第一个索引从头到尾选择。然后我将括号更深一层,并根据第二个索引从头到尾选择

numpy三维数组切片图示
NumPy索引和切片
import numpy as np
a = np.array([[[2,1],[4,5],[6,2]],
            [[3,4],[7,6],[10,2]]])
print(a[:,1:,:]) #[[[ 4  5]
                   [ 6  2]]
                  [[ 7  6]
                  [10  2]]]

总结

  以上是晓得博客为你介绍的NumPy索引和切片的全部内容,向你解释如何从 numpy 数组中选择单个元素,如何对一维数组进行切片,直到能够对具有任意数量维度的数组进行切片。

  推荐:NumPy教程

给文章评分

晓得博客,版权所有丨如未注明,均为原创
晓得博客 » NumPy索引和切片

转载请保留链接:https://www.pythonthree.com/numpy-indexing-and-slicing/

ThemeForest 模板套件
可视化创建WordPress网站
siteground主机

发表评论

您的电子邮箱地址不会被公开。

Scroll to Top