索引Numpy张量,无需重塑

时间:2015-12-31 16:16:22

标签: python arrays numpy indexing

我有一个形状为(5,48,15)的张量。如何沿第0轴访问元素并仍然保持3个维度而无需重新整形。例如:

x.shape                    # this is (5,48,15) 
m = x[0,:,:] 
m.shape                     # This is  (48,15)
m_new = m.reshape(1,48,15) 
m_new.shape                 # This is now (1,48,15) 

这可能而不需要重塑吗?

2 个答案:

答案 0 :(得分:3)

当您使用单个整数索引轴时,与x[0, :, :]一样,返回的数组的维数将减1。

要保留三个维度,您可以......

  • 在建立索引的同时插入新轴:

    >>> x[None, 0, :, :].shape
    (1, 48, 15)
    
  • 或使用切片:

    >>> x[:1, :, :].shape
    (1, 48, 15)
    
  • 或使用花式索引:

    >>> x[[0], :, :].shape
    (1, 48, 15)
    

答案 1 :(得分:1)

选择索引必须是切片或列表(或数组):

m = x[[0],:,:]
m = x[:1,:,:]
m = x[0:1,:,:]