numpy之reshape注意事项

看一下这个数组(66,65,9),一个元素带了9个变量,温度、湿度、风速等等,常见的地理数据集
numpy之reshape注意事项_第1张图片

需要带入模型里计算,但是模型只认2D,需要重新reshape一下。然后就发现一些小细节,毕竟菜鸡TAT…


看一下reshape的介绍
numpy之reshape注意事项_第2张图片
这里有个order参数
order=’C’,是行优先读取(默认)
order=’F’,是列优先读取
order=’A’,是按照输入的array自动进行选择


那么,如果我想把上面那个(66,65,9)的数组整理成2D的也就是(4290,9),那么我应该这么写x_img = new_img.reshape(-1,9,order='C')
这样的话就是按照一行一行的读,第一行读完,此时读到的数据的维数应该是(65,9),读第二行的时候,原来第二行的第一个元素的新位置应该是66…依次类推…那么原来的3D数组第40行第二个元素,在2D中的位置:40*65+2=2602,
输出看一下

>>>print new_img[40][2]
[3.6000000e+01 4.1136532e+01 6.0634727e+01 1.1384450e+00 2.7991520e+01
 2.5606097e+02 6.3569881e+01 4.9082675e+00 9.5885789e+04
>>>x_img = new_img.reshape(-1,9,order='C')
>>>print x_img[2602]
[3.6000000e+01 4.1136532e+01 6.0634727e+01 1.1384450e+00 2.7991520e+01
 2.5606097e+02 6.3569881e+01 4.9082675e+00 9.5885789e+04]

你可能感兴趣的:(learn)