【发布时间】:2018-01-22 16:18:41
【问题描述】:
我有一个名为“PRECIP”的 numpy 数组,其形状为 (2,3,3),对应于 (time, lat, lon)
array([[[ 0.05368402, 0.43843025, 0.09521903],
[ 0.22627141, 0.12920409, 0.17039465],
[ 0.48148674, 0.59170703, 0.41321763]],
[[ 0.63621704, 0.11119242, 0.25992372],
[ 0.67846732, 0.3710733 , 0.25641174],
[ 0.1992151 , 0.86837441, 0.80136514]]])
我有另一个名为“idx”的 numpy 数组,它是一个索引列表,形状为 (3, 4):
array([[0,0,1,1], # time
[0,2,0,2], # x coordinate
[0,2,0,2]]) # y coordinate
到目前为止,我已经能够用“idx”变量索引“PRECIP”变量,这样我就得到了一个形状为 (4,) 的数组,即。
>>>accum = PRECIP[idx[0,:],idx[1,:],idx[2,:]]
array([ 0.05368402, 0.41321763, 0.63621704, 0.80136514])
但是,我需要的是一个形状为 (3,3) 的零数组“ACCUM”,其中填充了“IDX”中每对坐标的“PRECIP”之和。 “IDX”中未列出的所有其他网格点将为 0。
基本上我想要一个看起来像这样的数组“accum”
>>>accum
array([[[ 0.68990106, 0. , 0. ], # 0.68990106 = 0.05368402 + 0.63621704
[ 0. , 0. , 0. ],
[ 0. , 0. , 1.21458277], # 1.21458277 = 0.41321763 + 0.80136514
如果有任何帮助,我将不胜感激!谢谢:)
【问题讨论】:
-
如果您提供一小部分数据样本数组以及样本的预期输出以进行验证,可能会更容易理解您想要什么
-
这是个好主意,我使用更新了我的问题,以便它查看一个小的随机样本。谢谢!
标签: python arrays numpy indexing weather