栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 如何实现数组的间隔排列:每一行比前一行间隔一个位置排列。

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 如何实现数组的间隔排列:每一行比前一行间隔一个位置排列。

python 如何实现数组的间隔排列:每一行比前一行间隔一个位置排列。

最近,在处理一些数据时,由于数据是按照每小时进行采样的,为了保持周期的完整性,需要将同一时刻对应的数据进行平均处理。
举个例子:
第一行是1-12小时;
第二行从第一行第2个小时对应的列数开始排1-12小时;
第三行从第一行第3个小时对应的列数开始排1-12小时;
、、、
依次同理。

在python中如何实现呢?

1、每一行的数据存储在不同的nc文件内==》循环读取nc文件,
2、创建一个都是nan值的矩阵,方面后续将数据存入,
3、写一个循环,使得每次数据依次间隔一个位置存在每一行中。

循环读取文件很简单,如果命名有一定规律的话,可以参考我前面的文章
1、字符串拼接
2、批量读取文件
;主要使用
字符串拼接和glob函数

import numpy as np
import netCDF4 as nc
import xarray as xr
import glob

#  循环读取nc文件
path='D:\data\'
file='*.nc'
filelist=glob.glob(path=file)
for f in filelist:
	data=xr.open_dataset(f)
	
#  构建空矩阵,循环插入
a=np.random.rand(30)
a=a.reshape(5,6)
b= np.empty((5, 30,)) * np.nan
ind=a[0,:]

#  循环填入矩阵
for i in range(len(a)):
    ind=a[i,:]
    b[i,i:i+len(ind)]=ind #设置插入的间隔,这里间隔是1
	

初步的实现结果如下,这里我只是给了一个普通的例子。有兴趣的小伙伴可以将a换成你的nc数据,b根据对应的数据a设置相应的矩阵大小

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/468570.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号