如何为numpy.ndarray添加维度,使其形状变为(n,m,1)?
如何为numpy.ndarray添加维度至(n,m,1)
当然可以,以下几种常用方法都能将形状为(2,4)的数组调整为(2,4,1),满足通过xarr[i][j][0]获取元素的需求:
- 使用
np.expand_dims()指定添加维度的位置:
import numpy as np xlist = [(1, 2, 3, 4), (5, 6, 7, 8)] xarr = np.array(xlist) # axis=-1表示在最后一个维度后添加新轴 xarr_expanded = np.expand_dims(xarr, axis=-1) print(xarr_expanded.shape) # 输出: (2, 4, 1) print(xarr_expanded[0][0][0]) # 输出: 1
- 使用索引语法
[:, :, np.newaxis]快速扩展维度:
import numpy as np xlist = [(1, 2, 3, 4), (5, 6, 7, 8)] xarr = np.array(xlist) xarr_expanded = xarr[:, :, np.newaxis] print(xarr_expanded.shape) # 输出: (2, 4, 1) print(xarr_expanded[1][2][0]) # 输出: 7
- 使用
reshape()直接重新定义数组形状:
import numpy as np xlist = [(1, 2, 3, 4), (5, 6, 7, 8)] xarr = np.array(xlist) # 利用原数组的形状参数,避免硬编码数值 xarr_expanded = xarr.reshape(xarr.shape[0], xarr.shape[1], 1) print(xarr_expanded.shape) # 输出: (2, 4, 1) print(xarr_expanded[0][3][0]) # 输出: 4
内容的提问来源于stack exchange,提问作者CalmaKarma
相关产品推荐
相关产品推荐

