通常创建具有n个前单个维度的对象

时间:2015-02-26 15:27:05

标签: python arrays numpy scipy

说我有X矩阵X.ndim = n。我现在想要创建一个新的矩阵,其中包含n" singleton"尺寸。

例如,当n=2和我创建新范围时,我想创建它

>>> bar = np.arange(0, 5)[np.newaxis, np.newaxis, ...]
>>> bar.shape
(1, 1, 5)

使其具有2单身尺寸。说n = 5。我如何通常生成bar (1,1,1,1,1,5)形状{{1}}?

2 个答案:

答案 0 :(得分:2)

一种方法是创建指定ndmin参数的新数组:

>>> np.array(np.arange(5), ndmin=6).shape
(1, 1, 1, 1, 1, 5)

NumPy在左侧添加了新尺寸。

或者你可以使用reshape并传入一个指定所需形状的元组:

>>> np.arange(5).reshape((1,)*5 + (5,)).shape
(1, 1, 1, 1, 1, 5)

答案 1 :(得分:0)

>>> n=5
>>> bar = np.arange(0, 5)[(np.newaxis, )*n]
>>> bar.shape
(1, 1, 1, 1, 1, 5)