python气象学习笔记(五):reshape相关知识学习

1.reshape函数有哪些作用

在处理nc文件的过程中,通常包含了时间(time),经度(Lon)和纬度(lat),维度一般为三维,所以计算降雨、风、气溶胶等数值过程中需要改变维度,因此numpy.reshape()函数主要是被用于改变数组的形状而不改变它的数据。该函数返回一个数据不变但是维度变化的数组。

2.reshape参数说明

reshape(a,newshape,order)
参数描述
a重组维度,必须要有的
newshape必须要有的,新的数组形状,必须要和旧的数组形状相兼容,如果是整数,则结果将是该长度的一维的数组。一个形状尺寸可以为-1,在这种情况下该值是根据数组的长度和其余维来推断的。
order默认为“按行”排序,即行优先,order=‘c’;若要改为“按列”排列,可通过修改order参数进行改变,order=‘f’

3.reshape函数使用

import numpy as np
x = np.random.randn(3,4,4)
print(x)
print(x.shape) ## (3,4,4)
x_shape1 = x.reshape((-1,1))
print(x_shape1)
print(x_shape1.shape)
##输出
"""
[[-1.67801616]
 [-0.09628119]
 [-0.9089497 ]
 [ 1.18375552]
 [-1.75075092]
 [-0.96726959]
 [ 0.63560458]
 [-1.89102117]
 [-0.50195235]
 [ 0.66531248]
 [-0.62532836]
 [ 0.99750862]
 [ 0.28186339]
 [-1.02028719]
 [ 0.17320298]
 [ 0.21332318]
 [ 1.43376927]
 [ 1.03839138]
 [-3.05672735]
 [-0.77708269]
 [ 0.41603471]
 [ 0.12485733]
 [-0.00760408]
 [-0.40286899]
 [ 0.91850841]
 [-0.75621141]
 [ 1.28855272]
 [-0.42911801]
 [ 3.48153351]
 [-0.09291484]
 [ 0.99143197]
 [ 1.21240764]
 [-0.92816431]
 [ 1.64733273]
 [-0.67986017]
 [ 1.5876786 ]
 [-0.48230181]
 [ 1.66607294]
 [ 1.28969276]
 [ 0.15612784]
 [-0.59492228]
 [ 1.11845624]
 [-1.06718761]
 [ 0.7456491 ]
 [-0.33098145]
 [-0.61728401]
 [ 0.96576885]
 [ 0.53507203]]
"""
"""
维度:(48, 1)
"""

x.reshape((-1,1))中的负数是模糊控制,负数可以为任何数,其作用在于计算机根据原数组中的元素总数自动计算行或列的值。比如reshape(-1,4)固定四行,多少列系统根据元素数量自动计算好;同理reshape(2,-2)固定两行,列数自动算好。

x_shape3 = x.reshape(-1)
print(x_shape3)
print(x_shape3.shape)
"""
输出结果:
[-1.67801616 -0.09628119 -0.9089497   1.18375552 -1.75075092 -0.96726959
  0.63560458 -1.89102117 -0.50195235  0.66531248 -0.62532836  0.99750862
  0.28186339 -1.02028719  0.17320298  0.21332318  1.43376927  1.03839138
 -3.05672735 -0.77708269  0.41603471  0.12485733 -0.00760408 -0.40286899
  0.91850841 -0.75621141  1.28855272 -0.42911801  3.48153351 -0.09291484
  0.99143197  1.21240764 -0.92816431  1.64733273 -0.67986017  1.5876786
 -0.48230181  1.66607294  1.28969276  0.15612784 -0.59492228  1.11845624
 -1.06718761  0.7456491  -0.33098145 -0.61728401  0.96576885  0.53507203]
"""
"""
维度:(48,)
"""

4.总结

np.reshape(2,3) ##重组成2行3列数组
np.reshape(-1)##第一个维度不限,无其它维度要求,那不就是一维
np.reshape(2,-1)##第一个维度维数是2,第二个不限,两行是肯定的
np.reshape(-1,2)##第二个维度维数是2,第一个不限,就是两个两个到底。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值