如何使用numpy对每两列应用一个函数

1dkrff03  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(82)

我想创建一个自定义函数,它将应用计算将每2列转换为列向量:第一个月
有没有一个numpythonic的方式,我可以滑动每两列?- 谢谢-谢谢

92vpleto

92vpleto1#

拆分

水平拆分矩阵,对每个新数组应用函数,并将结果向量堆叠在一起:

npairs = data.shape[1] // 2
func = lambda x: (x*x).sum(1, keepdims=True)
answer = np.hstack([func(arr) for arr in np.hsplit(data, npairs)])

字符串

整形

在整形时,我们使用两个新索引在水平轴上迭代,其中最后一个索引是2,以便将列分成对。然后我们沿着最后一个轴应用所需的函数:

arr = data.reshape(data.shape[0], -1, 2)
answer = (arr*arr).sum(-1)


备注:

  • data.reshape(x, -1, y)表示第一个和最后一个尺寸设置为xy,中间值自动计算
  • data.sum(-1)表示沿着最后一个轴计算总和

相关问题