【发布时间】:2021-08-22 14:36:27
【问题描述】:
这是我当前的代码:
#move data from vector, A, into 2D array, H
for i in range(0,nlat):
jmin = nheader+1+i*nlon
jmax = nheader+(i+1)*nlon
A = A[jmin:jmax+1]
H[i] = A
A = np.array(Alist)
我有一个很长的向量,我从中获取某些数据并将其放入维度为 nlat x nlon 的二维数组中。此设置有效,但非常耗时。任何关于如何加快速度或重写它的建议都会非常有帮助。
【问题讨论】:
-
np.reshape(A, (nlat, nlon)) -
这能回答你的问题吗? Convert a 1D array to a 2D array in numpy
-
不是真的,因为 len(A) != nlat*nlon。它不会以这种方式正确翻译。如果您可以通过代码判断,我将使用 A[5:10] 并将其放入 H[0],然后将 A[6:11] 放入 H[1] 等等。这需要一段时间,但不幸的是,重塑并不能满足我的需要。
-
在您的示例中,
nlat和nlon是什么?nheader怎么样?如果此循环的目的是跳过标题,您可以简单地切片向量并 then 重塑。A[nheader+1:].reshape((nlat, nlon))。您能否在问题中添加示例输入和输出以使其更清晰? -
这可能行得通。如果它不起作用,我会尝试并添加一个 MRE。谢谢