高级索引
  wYiNgHyJ6FE6 2023年11月19日 31 0

如果一个ndarray是非元组序列,数据类型为整数或布尔值的ndarray,或者至少一个元素为序列对象的元组,我们就能够用它来索引ndarray。高级索引始终返回数据的副本。 与此相反,切片只提供了一个视图。

有两种类型的高级索引:整数布尔值

 

整 数 索 引 
这 种 机 制 有 助 于 基 于 N 维 索 引 来 获 取 数 组 中 任 意 元 素 。 每 个 整 数 数 组 表 示 该 维 度 的 下 标 值 。 当 索 引 的 元 素 个 数 就 是 目 标 ndarray 的 维 度 
时 , 会 变 得 相 当 直 接 。 
以 下 示 例 获 取 了 ndarray 对 象 中 每 一 行 指 定 列 的 一 个 元 素 。 因 此 , 行 索 引 包 含 所 有 行 号 , 列 索 引 指 定 要 选 择 的 元 素 。

 

1 
2 
3 
4 
5 
6 
import numpy as np 
2), 
[3, 
print Y 
4], 
4 
5]

 

该 结 果 包 括 数 组 中 ( 0 , 0), 
(), 1) 和 ( 2 , 0 ) 位 置 处 的 元 素 。 
下 面 的 示 例 获 取 了 4X3 数 组 中 的 每 个 角 处 的 元 素 。 行 索 引 是 也 0 ] 和 [ 3 , 3), 而 列 索 引 是 [ 0 , 2 〕 和 [ 0 , 2 ] 。

 

ä5J 2 
1, 
1 
2 
3 
4 
5 
6 
7 
8 
9 
11 
import numpy as np 
print 
print x 
print 
rows = 
cols 
print 
print y 
3, 
4, 
9, 
10,

 

2 
3 
4 
5 
5 
7 
8 
9 
le 
11 
我 们 的 数 组 是 : 
[ 3 
[ 6 
[ 9 
2 ] 
1 
4 
8 ] 
7 
le 11 ] ] 
这 个 数 组 的 每 个 角 处 的 元 素 是 : 
[ [ e 2 ] 
[ 9 11 ] ] 
返 回 的 结 果 是 包 含 每 个 角 元 素 的 ndarray 对 象 。 
高 级 和 基 本 索 引 可 以 通 过 使 用 切 片 : 或 省 略 号 . 一 与 索 引 数 组 组 合 。 
是 相 同 的 。 但 高 级 索 引 会 导 致 复 制 , 并 且 可 能 有 不 同 的 内 存 布 局 。 
以 下 示 例 使 用 sl i “ 作 为 列 索 引 和 高 级 索 引 。 
当 切 片 用 于 两 者 时 , 结 果

 

1 
2 
3 
4 
5 
6 
7 
8 
9 
11 
12 
13 
14 
15 
3 
import numpy as np 
1, 
3, 
print ' ' 
print x 
print 
z = XCI 
print 
'UJhžhG, 
print z 
print 
print 
print y 
4, 
10,

 

1 
2 
3 
4 
5 
6 
7 
8 
19 
11 
12 
13 
14 
15 
16 
17 
我 们 的 数 组 是 : 
[ [ e 1 2 ] 
[ 3 4 5 ] 
[ 9 10 11 ] ] 
切 片 之 后 , 我 们 的 数 组 变 为 : 
[10 11 ] ] 
对 列 使 用 高 级 索 引 来 切 片 : 
[ [ 4 5 ] 
[1B 11 ] ]

 

布 尔 索 引 
当 结 果 对 象 是 布 尔 运 算 ( 例 如 比 较 运 算 符 ) 的 结 果 时 , 将 使 用 此 类 型 的 高 级 索 引 。 
示 例 1 
这 个 例 子 中 , 大 于 5 的 元 素 会 作 为 布 尔 索 引 的 结 果 返 回 。 
3 , 
1 
2 
3 
4 
5 
6 
8 
9 
import numpy as np 
× = np.array()[ e, 
print . 我 们 的 数 组 是 : 
print x 
print 
1 。 
5 J, [ 
7 。 
9 , 
1 釓 
11 ] ] ) 
7 《 # 现 法 有 丿 丿 . 丿 0 丆 5 元 
print 0 : 于 5 的 元 素 是 : 
print x[x > 5 ]

 

高级索引_numpy

 

1 
2 
3 
4 
2 
2 
import numpy as np 
a = np. 
print 
3. 
2. 
4. 
1, 2, np. nan, 3,4, 5)) 
s.]

 

示 例 3 
以 下 示 例 显 示 如 何 从 数 组 中 过 滤 掉 非 复 数 元 素 。 
1 
2 
4 
import numpy as np 
np.array([l, 2 + 6j 
print a[np.iscomplex(a)] 
3 巧 + 531) 
输 出 如 下 : 
1 [ 2 . 0+6 巧 
2 
3 . 5 十 5 巧 ]

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
  wYiNgHyJ6FE6   2023年11月22日   30   0   0 numpyNumPy
  wYiNgHyJ6FE6   2023年12月09日   33   0   0 numpyNumPy
  wYiNgHyJ6FE6   2023年11月19日   37   0   0 numpyNumPy
  wYiNgHyJ6FE6   2023年11月19日   38   0   0 numpyNumPy
  wYiNgHyJ6FE6   2023年11月19日   40   0   0 numpyNumPy
  wYiNgHyJ6FE6   2023年12月10日   33   0   0 numpyNumPy
  wYiNgHyJ6FE6   2023年11月20日   31   0   0 numpyNumPy
  wYiNgHyJ6FE6   2023年11月19日   39   0   0 numpyNumPy
  wYiNgHyJ6FE6   2023年12月08日   30   0   0 numpyNumPy
wYiNgHyJ6FE6
作者其他文章 更多

2023-12-23

2023-12-11

2023-12-10

2023-12-09

2023-12-08

2023-11-22

2023-11-20

2023-11-19