一起学数据分析之NumPy(05)——切片索引

一起学数据分析之NumPy(05)——切片索引

首页休闲益智切片大师3D更新时间:2024-05-13

ndarray的切片语法跟Python列表这样的一维对象差不多:

In [1]:

import numpy as np

In [2]:

arr = np.arange(10)arr[1:6]

Out[2]:

array([1, 2, 3, 4, 5])

高纬度对象的花样更多一些,你可以在一个或多个轴上进行切片,也可以跟整数索引混合使用。对于二维数组,其切片方式稍显不同:

In [3]:

arr2d = np.array([[1,2,3],[4,5,6],[7,8,9]])arr2d

Out[3]:

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

In [4]:

arr2d[:2]

Out[4]:

array([[1, 2, 3], [4, 5, 6]])

可以看出,它是沿着0轴(第一个轴)切片的。也就是说,切片是沿着一个轴向选取元素的。你可以传入多个切片,就像传入多个索引那样:

In [5]:

arr2d[:2, 1:]

Out[5]:

array([[2, 3], [5, 6]])

像这样进行切片时,只能得到相同维度的数组视图。通过将整数索引和切片混合,可以得到更低维度的切片:

In [6]:

arr2d[1, :2]

Out[6]:

array([4, 5])

In [7]:

arr2d[2, :1]

Out[7]:

array([7])

你可以像下面这样只对高维轴进行切片:

In [8]:

arr2d[:, :1]

Out[8]:

array([[1], [4], [7]])

只有冒号':'代表选取整个轴。 自然,对切片表达式的赋值操作也会被扩散到整个选区。

In [9]:

arr2d[:2, 1:] = 0arr2d

Out[9]:

array([[1, 0, 0], [4, 0, 0], [7, 8, 9]])

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved