我有一个很大的文件,每秒钟都有风速和风向。我已经将每个元素存储到一个numpy数组中。例如,风速为ws =(7、8、8.5、8、9.5)。我想以最大1分钟的风速填充另一个阵列,因此,每60个实例,我需要拉最大。我已经试过了:
gust = np.full(len(ws), 0)
indices = sig.argrelmax(ws)
gust[indices] = ws[indices]
他任意拉出最大值并将它们成功地输入到数组中,同时保持与ws数组中相同的索引,但是1)我需要它以60(1-60、61-120等)的批次检查最大值。等等)。 2)它将数字转换为整数,我需要浮点数才能保持浮点数。
参考方案
如果要以更直接的方式处理60的非整数倍,可以使用reduceat:
wind=np.random.normal(size=1000)
res=np.maximum.reduceat(wind, np.r_[:wind.size:60])
np.r_创建一个索引数组0,60,120 ...
reduceat在连续索引之间的切片上执行ufunc maximum
所以res的最后一个元素是wind的最后1000%60个元素中的最大值
Python sqlite3数据库已锁定 - python
我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)