索引多维 numpy 数组中的多个元素
问题内容
我想使用另一个索引数组提取给定多维 numpy 数组的元素。但是它的行为并不符合我的预期。下面是一个简单的例子:
import numpy as np a = np.random.random((3, 3, 3)) idx = np.asarray([[0, 0, 0], [0, 1, 2]]) b = a[idx] print(b.shape) # expect (2, ), got (2, 3, 3, 3)
为什么会这样呢?我应该如何修改代码以使 仅包含两个元素: 和 ?
正确答案您正在寻找 numpy 高级索引
/link/2d661a763280f48803f3c9ba8ba0e00b
在您的情况下,您需要在每个轴上使用 :
a[idx[:,0], idx[:, 1], idx[:, 2]].shape == (2,) # True
声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至201542412@QQ.com举报,一经查实,本站将立刻删除。
相关推荐
-
深入了解Go语言数组的基础知识和特点
Go语言数组的基本概念与特性1. 数组的基本概念数组是一种数据结构,它可以存储多个相同类型的数据元素。数组中的每个元素都有一个索引,索引从 0 开始。数组的长度是数组中元素的数量。2. 数组的声明数组
-
深入了解Go语言中数组的底层机制
Go语言中数组的底层实现原理数组的存储结构Go语言中的数组是一种连续的内存块,其中每个元素都占据固定大小的空间。数组的元素类型可以是任何基本数据类型或自定义类型。数组的长度是固定的,在创建数组时指定,
-
了解Go语言中数组的概念
数组概述数组是Go语言中一种基本的数据类型,用于存储一组具有相同类型的数据元素。数组中的每个元素都有一个唯一的索引,可以通过索引来访问该元素。数组的长度是固定的,一旦创建就不能改变。创建数组可以使用以
-
对Go语言中数组的定义和使用进行深入剖析
Go语言中数组的定义与用法探析数组定义Go语言中的数组是一种有序的固定长度的数据结构,可以存储相同类型的数据元素。数组的元素可以通过索引来访问,索引从0开始。数组的定义语法如下:var arrayNa
-
对Go语言中的数组数据结构进行深入分析
数组数据结构:数组是一种基本的数据结构,它包含一系列元素,每个元素都有一个索引。数组中的元素可以是任何类型,包括其他数组。数组的大小在创建时确定,并且在以后不能改变。代码示例:// 创建一个包含 5