我从文件中读取了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
最佳答案
要“撤消”整形,只需在数组上再次调用reshape
即可将其整形为原始尺寸。
如果您的数组x
具有维度(n
,m
),则:
x.reshape(kmax, jmax, imax, 6).reshape(n, m) == x
关于python - 脾气暴躁的重塑“逆转”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51643755/