numpy的使用说明(三):numpy中切片和索引详解(二)

简介: numpy的使用说明(三):numpy中切片和索引详解(二)

② 怎么把一个二维数组的所有元素全部倒序过来?


c = np.arange(12).reshape(3,4)
display(c)
# ------------你可分步考虑一下---------------
display(c[::-1,:])
display(c[:,::-1])
display(c[::-1,::-1])


结果如下:

image.png


2、索引

1)普通索引

a = np.arange(1,13,1).reshape(3,4)
display(a)
# 获取某一个元素:如下两种方式
display(a[1][2])
display(a[1,2])
# 获取某一行元素:如下两种方式
display(a[1])
display(a[1,:])
# 获取某一列元素
display(a[:,1])


结果如下:

image.png


2)通过整数数组进行索引(这个比较有用)

当要选取的元素不连续时,可以提供一个索引数组来选择(或修改)对应索引位置

的元素。

通过整数数组索引,【返回的是原数组的拷贝,而不是视图】。

可以提供多个一维数组索引,此时会将每个数组的对应位置元素作为索引,返回对应的元素。

① 通过整数数组索引,获取数组中的元素(这个用的多一点);


a = np.arange(1,21,1).reshape(5,4)
display(a)
# 选取数组a中的第2、第4、第5行数据;
display(a[[1,3,4]])


结果如下:

image.png

② 提供多个一维数组索引,获取数组中的元素(这种方式很特别,了解一下);


a = np.arange(1,21,1).reshape(5,4)
display(a)
# 下面这个代码获取的是对应位置组成的坐标的元素
# [1,2],[4,3],[4,2]
display(a[[1,4,4],[2,3,2]])


结果如下:

image.png

③ 通过整数数组索引,【返回的是原数组的拷贝,而不是视图】;


a = np.arange(1,21,1).reshape(5,4)
display(a)
b = a[[1,3]]
display(b)
b[1,2] = 888
display(b)
display(a)


结果如下:

image.png

注意:当返回的是原数组的拷贝的时候,相当于将原始数组复制了一份,在内存中重新开辟了一块儿空间,存储起来了。因此,当我修改任何一个数组,相互之间没有任何影响。


3)通过布尔数组进行索引

含义:我们可以提供一个布尔类型的数组(A),然后通过该数组(A)来对另外一个数组(B)进行索引(元素选取)。索引的原则为:如果为True,则选取对应位置的元素,否则不选取。

作用:通过布尔类型的数组进行索引是常见且实用的操作,我们通常用来进行元素选择(或过滤)操作。

① 通过布尔数组取一维数组中的元素


a = np.array([17,19,32,13,27,10,40])
a1 = a[[True,True,False,True,False,False,True]]
display(a1)
bool_index = a > 15
display(bool_index)
a2 = a[bool_index]
display(a2)


结果如下:

image.png

相关文章
|
3月前
|
索引 Python
|
3月前
|
机器学习/深度学习 数据可视化 API
Python Numpy 切片和索引(高级索引、布尔索引、花式索引)
Python Numpy 切片和索引(高级索引、布尔索引、花式索引)
46 3
|
4月前
|
索引 Python
NumPy 教程 之 NumPy 切片和索引 7
NumPy 切片和索引用于访问和修改 `ndarray` 对象。类似于 Python 的列表切片, 使用索引 `[0-n]` 和切片 `slice(start, stop, step)` 或简写为 `[start:stop:step]` 来提取元素。单个索引 `[n]` 获取单个元素, `[n:]` 获取从 `n` 开始的所有元素, `[n:m]` 获取 `n` 至 `m-1` 的元素。省略号 `...` 保持选择维度与数组一致, 如 `a[...,1]` 获取所有第二列, `a[1,...]` 获取第二行, `a[...,1:]` 获取所有第二列及之后的元素。
26 4
|
4月前
|
索引 Python
NumPy 教程 之 NumPy 高级索引 3
NumPy高级索引包括整数数组索引、布尔索引及花式索引,能访问并操作数组中的任意元素。例如,使用整数数组索引可以从多维数组中选取特定位置的元素。对于一个4x3数组`x`,通过定义行索引`rows`和列索引`cols`为`[[0,0],[3,3]]`和`[[0,2],[0,2]]`,可以获取四个角的元素:`x[rows,cols]`,结果为`[[0 2] [9 11]]`。此外,结合切片与索引数组可进一步定制数据选择,如`a[1:3, 1:3]`或`a[...,1:]`等。
27 3
|
3月前
|
索引 Python
NumPy 教程 之 NumPy 高级索引 6
NumPy高级索引包括 using 整数数组、布尔数组等来 access 数组元素, enabling 复杂的操作和 modifications. **布尔索引** uses 布尔数组 to index 目标数组, filtering 元素 based on 条件.
21 2
|
3月前
|
索引 Python
NumPy 教程 之 NumPy 高级索引 9
NumPy高级索引包括整数数组索引、布尔索引及花式索引,能实现对数组元素的灵活访问与复杂操作。其中,花式索引通过整数数组指定目标轴的下标来选取元素,不同于切片,它总是返回新数组。例如,对二维数组使用倒序索引数组时,会得到指定行的新数组:[[16 17 18 19], [24 25 26 27], [28 29 30 31], [4 5 6 7]]。
38 1
|
3月前
|
索引 Python
NumPy 教程 之 NumPy 高级索引 10
NumPy的高级索引功能强大,支持整数数组索引、布尔索引等多种方式,能够灵活访问和操作数组中的元素。花式索引通过整数数组选取特定位置的数据,不同于切片,它总是创建新数组。使用`np.ix_`处理多维索引时,可实现笛卡尔积效果,选取特定行与列的组合,如示例中从一个二维数组精确取出指定位置的子矩阵。
37 0
|
2月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
79 0
|
3月前
|
机器学习/深度学习 数据处理 计算机视觉
NumPy实践宝典:Python高手教你如何轻松玩转数据处理!
【8月更文挑战第22天】NumPy是Python科学计算的核心库,专长于大型数组与矩阵运算,并提供了丰富的数学函数。首先需安装NumPy (`pip install numpy`)。之后可通过创建数组、索引与切片、执行数学与逻辑运算、变换数组形状及类型、计算统计量和进行矩阵运算等操作来实践学习。NumPy的应用范围广泛,从基础的数据处理到图像处理都能胜任,是数据科学领域的必备工具。
60 0
|
20天前
|
存储 数据处理 Python
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第27天】在科学计算和数据分析领域,Python凭借简洁的语法和强大的库支持广受欢迎。NumPy和SciPy作为Python科学计算的两大基石,提供了高效的数据处理和分析工具。NumPy的核心功能是N维数组对象(ndarray),支持高效的大型数据集操作;SciPy则在此基础上提供了线性代数、信号处理、优化和统计分析等多种科学计算工具。结合使用NumPy和SciPy,可以显著提升数据处理和分析的效率,使Python成为科学计算和数据分析的首选语言。
28 3
下一篇
无影云桌面