gpt4 book ai didi

python - 沿 numpy 数组的第四维追加

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:47 27 4
gpt4 key购买 nike

我有一组 4d 数据结构(时间、级别、纬度、经度),我正在尝试对其进行插值。为了轻松做到这一点,我需要在数据末尾添加一个额外的经度值,其值与第一个经度相同。这将允许我使用的插值方法在更高的经度值(例如 359)处正确插值

当前数据的维度为(64,70,64,128),需要使其维度为(64,70,64,129),其中最后一个经度的值与第一个经度的值相同。

这是我迄今为止尝试过的,

data = np.concatenate((data, data[:,:,:,0]), axis = 3)

data = np.append( data, data[:,:,:,0],axis = 3)

但是我得到了

ValueError: all the input arrays must have same number of dimensions

对于两者,我尝试向数据添加一个额外的维度以附加 data[:,:,:,0][...,np.newaxis] 但这没有帮助。

此时我不知道如何执行此操作,除了循环遍历每个时间、级别、纬度并附加单个值之外,但是我需要对数百组数据执行此操作,这样就会得到非常慢。

有什么想法吗?

最佳答案

问题是您的数组需要共享相同的形状(显然从错误消息来看),但这意味着您的数组需要具有相同的维数。快速答案是使用

np.append(data, data[:,:,:,0,np.newaxis], axis=3)
# or alternatively in shorthand:
np.append(data, data[...,0,None], axis=-1)

添加np.newaxis在切片末尾为数组添加一个额外的维度:

>>> data.shape
(64, 70, 64, 128)

>>> data[...,0].shape
(64, 70, 64)

>>> data[...,0,None].shape
(64, 70, 64, 1)

这允许数组在所有维度上共享相同的维度数和相同的形状,但您要附加的维度除外。

关于python - 沿 numpy 数组的第四维追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40986512/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com