【发布时间】:2016-03-26 11:25:01
【问题描述】:
1。简介
假设有一个形状为 (365,100,100) 的 3-d 数组:Prec。
- 代表一个地区全年的日降水情况。
- 显然,第一个维度代表时间序列。
- 最后2个维度代表空间分布(例如,1km x 1 km有10000个网格)
2。尝试
测试整个区域的每个网格的降水量是否高于一定的干湿分离值 Pd。我想总结全年的干燥日。
3。我的代码
freq = np.zeros(100,100).reshape(100,100)
Pd = xxx
for i in range(0,prec.shape[0],1):
for j in range(0,prec.shape[1],1):
for k in range(0,prec.shape[2],1):
if prec[i,j,k] < Pd:
freq[j,k] +=1
我认为太多的循环肯定会浪费时间。有没有一些最干净的方法来完成类似的工作?
任何建议将不胜感激!
【问题讨论】:
-
Divakar 下面的回答非常好。个人认为,对于这种东西,
numpy级别太低了,pandas才是正道。 -
我只熟悉
pandas的数据框。有一天我会在pandas中尝试n-d 数组!谢谢!
标签: python arrays performance numpy vectorization