Python 如何只到(…,3)到(…,1)?

Python 如何只到(…,3)到(…,1)?,python,numpy,Python,Numpy,我有一个形状为(1471201203)。我想获得(147、120、120、1)形状的数组副本。最后一个维度中的最后两个索引应该被丢弃 我应该使用什么功能?取决于您是否希望保持第四维: [1]中的:将numpy作为np导入 在[2]中:a=np.random.rand(1471201203) 在[3]中:b=a[:,:,:,0].copy();b、 形状 Out[3]:(147120120) #轴=-1展开最后一个维度 在[4]中:b=np.展开(a[:,:,:,0],轴=-1);b、 形状 Ou

我有一个形状为
(1471201203)
。我想获得
(147、120、120、1)
形状的数组副本。最后一个维度中的最后两个索引应该被丢弃


我应该使用什么功能?

取决于您是否希望保持第四维:

[1]中的
:将numpy作为np导入
在[2]中:a=np.random.rand(1471201203)
在[3]中:b=a[:,:,:,0].copy();b、 形状
Out[3]:(147120120)
#轴=-1展开最后一个维度
在[4]中:b=np.展开(a[:,:,:,0],轴=-1);b、 形状
Out[4]:(1471201201)

取决于是否要保留第四维:

[1]中的
:将numpy作为np导入
在[2]中:a=np.random.rand(1471201203)
在[3]中:b=a[:,:,:,0].copy();b、 形状
Out[3]:(147120120)
#轴=-1展开最后一个维度
在[4]中:b=np.展开(a[:,:,:,0],轴=-1);b、 形状
Out[4]:(1471201201)

是否要切掉最后一个维度中的最后两个索引? 我想这就是你想要的

a = np.random.rand(147, 120, 120, 3)
b = a[...,:1]
b.shape
输出

(147, 120, 120, 1)

省略号
可用于泛化空切片

是否要切掉最后一个维度中的最后两个索引? 我想这就是你想要的

a = np.random.rand(147, 120, 120, 3)
b = a[...,:1]
b.shape
输出

(147, 120, 120, 1)

省略号
可用于概括空切片

索引时保持维度的一种简单方法是将索引放置在列表中:

>>> a = np.random.rand(147, 120, 120, 3)
>>> a[:, :, :, [0]].shape
(147, 120, 120, 1)
>>> a[..., [0]].shape
(147, 120, 120, 1)

其中
[0]
是一个包含单个元素0的列表。如果您想要数组的副本而不是视图,请使用
.copy()

索引时保留维度的简单方法是将索引放置在列表中:

>>> a = np.random.rand(147, 120, 120, 3)
>>> a[:, :, :, [0]].shape
(147, 120, 120, 1)
>>> a[..., [0]].shape
(147, 120, 120, 1)

其中
[0]
是一个包含单个元素0的列表。如果需要阵列的副本而不是视图,请使用
.copy()

若要添加到该副本,将返回一个视图。如果需要它的副本,请在NumPy数组上使用
.copy()
。@Ehsan谢谢,没有正确阅读问题。若要添加此问题,将返回一个视图。如果需要它的副本,请在NumPy数组上使用
.copy()
。@Ehsan谢谢,我没有正确阅读问题。