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设置相应的矩阵大小


2d0de66b072143929c185ca1426e8884.png


相关文章
|
3月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
107 2
|
3月前
|
Python
【Leetcode刷题Python】53. 最大子数组和
LeetCode第53题"最大子数组和"的Python解决方案,利用动态规划的思想,通过一次遍历数组并维护当前最大和以及全局最大和来求解。
87 2
|
3月前
|
Python
【Leetcode刷题Python】剑指 Offer 03. 数组中重复的数字
解决剑指Offer题目 "数组中重复的数字" 的Python实现方法,通过使用字典来记录数组中每个数字的出现次数,快速找出重复的数字。
37 1
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
65 10
|
1月前
|
数据可视化 数据挖掘 数据处理
Python实现数字按三角形排列
Python实现数字按三角形排列
|
1月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
82 4
|
1月前
|
算法 数据挖掘 Python
Python 实现数字按照三角形排列详解
Python 实现数字按照三角形排列详解
63 0
|
3月前
|
存储 数据处理 索引
如何删除 Python 数组中的值?
【8月更文挑战第29天】
133 8
|
3月前
|
索引 Python
向 Python 数组添加值
【8月更文挑战第29天】
40 8
|
3月前
|
存储 缓存 C语言

热门文章

最新文章