脾气暴躁的重塑“逆转”

时间:2018-08-01 23:53:38

标签: python numpy multidimensional-array reshape

我从文件中读取了4D数组,该文件以2D形式i,j,k,x,y,z给出。 Input file header and shape 我使用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

1 个答案:

答案 0 :(得分:0)

要“逆转”整形,只需在数组上再次调用reshape即可将其整形为原始尺寸。

如果您有一个尺寸为x的数组n x m,则:

x.reshape(kmax, jmax, imax, 6).reshape(n, m) == x