29

如果 k 是一个任意形状的 numpy 数组,那么,k.shape = (s1, s2, s3, ..., sn)并且我想将它重塑为,这是在一行中完成它的最佳方法吗?k.shape(s1, s2, ..., sn, 1)

k.reshape(*(list(k.shape) + [1])
4

2 回答 2

40

像这样更容易:

k.reshape(k.shape + (1,))

但是,如果您只想在最后添加一个空维度,则应使用numpy.newaxis

import numpy as np
k = k[..., np.newaxis]

或者

k = k[..., None]

(请参阅切片文档)。

于 2013-07-24T13:17:11.727 回答
3

您可以使用numpy.expand_dims

In [4]: import numpy as np                                                          

In [5]: a = [1,2,3,4]                                                                              

In [6]: np.expand_dims(a, axis=1)                                                                  
Out[6]: 
array([[1],
       [2],
       [3],
       [4]])
于 2019-03-31T05:13:31.997 回答