《深度学习与图像识别:原理与实践》—2.3.10 FancyIndexing

举报
华章计算机 发表于 2019/07/24 20:27:57 2019/07/24
【摘要】 本节书摘来自华章计算机《深度学习与图像识别:原理与实践》一书中的第2章,第2.3.10节,作者是魏溪含 涂铭 张修鹏。

2.3.10 FancyIndexing

要索引向量中的一个值是比较容易的,比如通过x[0]来取值。但是,如果想要更复杂地取数,比如,需要返回第3个、第5个以及第8个元素时,应该怎么办?示例代码如下:

import numpy as np

x = np.arange(15)

ind = [3,5,8]

print(x[ind]) #使用fancyindexing就可以解决这个问题

我们也可以从一维向量中构成新的二维矩阵,示例代码如下:

import numpy as np

x = np.arange(15)

np.random.shuffle(x)

ind = np.array([[0,2],[1,3]])  #第一行需要取x向量中索引为0的元素,以及索引为2的元素,

                                   第二行需要取x向量中索引为1的元素以及索引为3的元素

print(x)

print(x[ind])

我们来看下输出结果很容易就能明白了:

[ 3  2  7 12  9 13 11 14 10  5  4  1  6  8  0]

[[ 3  7]

 [ 2 12]]

对于二维矩阵,我们使用fancyindexing取数也是比较容易的,示例代码如下:

import numpy as np

x = np.arange(16)

X = x.reshape(4,-1)

row = np.array([0,1,2])

col = np.array([1,2,3])

print(X[row,col])           #相当于取三个点,分别是(0,1),(1,2),(2,3)

print(X[1:3,col])             #相当于取第2、3行,以及需要的列


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。