Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Numpy 从三维nd阵列中选择行_Numpy - Fatal编程技术网

Numpy 从三维nd阵列中选择行

Numpy 从三维nd阵列中选择行,numpy,Numpy,情况如下:如果我有一个形状为(64100300)的numpy数组,并且我想基于形状为64的索引数组将其转换为(641300),我应该怎么做?说我们有 a=np.random.randn(64, 100, 300) indices = np.random.randint(low=0, high=100, size=64) 我现在有 a[:, indices, :] 这是行不通的。返回数组的形状为(64、64、300),因为它试图从每个批次中选择一系列值。如上面的注释所示: a[np.arang

情况如下:如果我有一个形状为(64100300)的numpy数组,并且我想基于形状为64的索引数组将其转换为(641300),我应该怎么做?说我们有

a=np.random.randn(64, 100, 300)
indices = np.random.randint(low=0, high=100, size=64)
我现在有

a[:, indices, :]

这是行不通的。返回数组的形状为(64、64、300),因为它试图从每个批次中选择一系列值。

如上面的注释所示:

a[np.arange(indices.size),indices,None]
或者同样但更具可读性:

a[np.arange(indices.size),indices][:,None,:]

使用[code>a[np.arange(len(index)),index]。或者
a[np.arange(len(index)),index,None]
为那个单子dim。非常感谢!它起作用了。但我只是好奇为什么让第三个dim变为
None
会有帮助?None/np.newaxis只是添加了一个被高级索引丢失的新轴。这是一个标准的
numpy
问题,实际上与
机器学习
无关-请不要垃圾邮件(删除)。