Numpy 重塑“逆转”

Bar*_*ron 4 python numpy multidimensional-array reshape

我从以 2D 形式 i、j、k、x、y、z 给出的文件中读取 4D 数组。 输入文件头和形状 我使用 numpy.reshape 将 2D 数组重塑为其 3D 形式。对此进行更改后,我希望以与我读取的顺序/格式完全相同的顺序/格式写入文件。我不明白如何“反转” numpy.reshape 以将其恢复为相同的格式。

import numpy as np    
import pandas as pd
from pandas import read_csv 


header = read_csv("Input/Grid1_test.csv", nrows=1,skipinitialspace=True)

print header.head()

imax=header['IMAX'].iloc[0]
jmax=header['JMAX'].iloc[0]
kmax=header['KMAX '].iloc[0]

print(imax,jmax,kmax)

#read grid data with numpy array .. it is slow but probably worth it 
grid_data = np.loadtxt('Input/Grid1_test.csv', delimiter=',', skiprows=3)


size_arr = np.array(grid_data).reshape(kmax, jmax, imax, 6)

#do something

#write the grid back into the file
Run Code Online (Sandbox Code Playgroud)

Hen*_*ody 5

要“反转”重塑,您只需reshape再次调用数组即可将其重塑为原始尺寸。

如果您有一个x维度为 ( n, m) 的数组,则:

x.reshape(kmax, jmax, imax, 6).reshape(n, m) == x
Run Code Online (Sandbox Code Playgroud)