向numpy数组添加维度[重复]

Posted

技术标签:

【中文标题】向numpy数组添加维度[重复]【英文标题】:Add dimension to numpy array [duplicate] 【发布时间】:2020-06-24 05:21:33 【问题描述】:

如果我有一个像这样的numpy 维度数组

[[1,2,3],[2,3,4],[3,4,5]]

有没有一种简单的方法来修改它,使尺寸像这样?

[[[1,2,3]],[[2,3,4]],[[3,4,5]]]

【问题讨论】:

这能回答你的问题吗? How can I add new dimensions to a Numpy array? 【参考方案1】:

你可以简单地重塑它:

a = np.array([[1,2,3],[2,3,4],[3,4,5]])
a.reshape(3,1,3)

你也可以让它动态:

row = a.shape[0]
col = a.shape[1]
a.reshape(row, 1, col)

输出:

array([[[1, 2, 3]],

       [[2, 3, 4]],

       [[3, 4, 5]]])

【讨论】:

【参考方案2】:

您可以使用 numpy.expand_dims() 来扩展数组维度。详见官方文档: https://docs.scipy.org/doc/numpy/reference/generated/numpy.expand_dims.html

【讨论】:

【参考方案3】:

最简单的方法是:

>>> x = np.array([[1,2,3],[2,3,4],[3,4,5]])
>>> x[:,None,:]

array([[[1, 2, 3]],

       [[2, 3, 4]],

       [[3, 4, 5]]])

相当于:

>>> x[:, np.newaxis, :]

array([[[1, 2, 3]],

       [[2, 3, 4]],

       [[3, 4, 5]]])

这又几乎等同于,

>>> np.expand_dims(x, 1)

array([[[1, 2, 3]],

       [[2, 3, 4]],

       [[3, 4, 5]]])

【讨论】:

以上是关于向numpy数组添加维度[重复]的主要内容,如果未能解决你的问题,请参考以下文章

这是在一行代码中向 numpy 数组添加额外维度的最佳方法吗?

numpy添加新的维度

Numpy基础(day3)维度增加及合并数组

Numpy基础(day3)维度增加及合并数组

如何向 NumPy 数组添加额外的列

是否可以在 numpy 数组中添加不同长度的行,然后在 python 中向该行添加元素?