python中是否有任何函数可以执行numpy.repeat函数的反转?

Sou*_*osh 7 python numpy python-2.7

例如

x = np.repeat(np.array([[1,2],[3,4]]), 2, axis=1)
Run Code Online (Sandbox Code Playgroud)

给你

x = array([[1, 1, 2, 2],
          [3, 3, 4, 4]])
Run Code Online (Sandbox Code Playgroud)

但是有什么东西可以表现

 x = np.*inverse_repeat*(np.array([[1, 1, 2, 2],[3, 3, 4, 4]]), axis=1)
Run Code Online (Sandbox Code Playgroud)

并给你

x = array([[1,2],[3,4]])
Run Code Online (Sandbox Code Playgroud)

ayh*_*han 5

定期切片应该有效.对于要反向重复的轴,请使用::number_of_repetitions

x = np.repeat(np.array([[1,2],[3,4]]), 4, axis=0)
x[::4, :]  # axis=0
Out: 
array([[1, 2],
       [3, 4]])

x = np.repeat(np.array([[1,2],[3,4]]), 3, axis=1)

x[:,::3]  # axis=1
Out: 
array([[1, 2],
       [3, 4]])


x = np.repeat(np.array([[[1],[2]],[[3],[4]]]), 5, axis=2)
x[:,:,::5]  # axis=2
Out: 
array([[[1],
        [2]],

       [[3],
        [4]]])
Run Code Online (Sandbox Code Playgroud)

  • 请注意,切片语法不允许我们轻松地以编程方式表达要取消重复的轴 (2认同)