【问题标题】:Numpy vectorizing functionNumpy矢量化函数
【发布时间】:2020-04-06 09:48:42
【问题描述】:

我有这个功能fs(i,j,dif)。通过做这个函数很容易矢量化 vfunc = np.vectorize(fs) 问题是,我想为

计算这个函数的输出
i=0, j=1,2,3,4,5, ...ysize-1

i=1, J=1,2,3,4,5, ...ysize-1

....
i=xsize-1,  j=1,2,3,4,5 ... ysize-1

i的一个值,vfunc(0, np.arange(ysize), 0) (dif=0)没有问题

但我不知道如何为i 的所有值执行此操作。

我做到这一点的唯一方法是

vfunc([[0],[1],[2],...[xsize-1]], np.arange(ysize), 0)

这对于大 xsize 是不可行的。有办法吗?

【问题讨论】:

  • 最后一个inp.arange(xsize)[:,None],一个(xsjze,1) 形状数组。
  • 酷,然后 reshape(xsize*ysize) 做我想要获得的。
  • 我强烈建议您看看numba

标签: python python-3.x numpy vectorization


【解决方案1】:

我理解您的问题如下。您想知道如何用 xsize 表示列表[[0],[1],[2],...[xsize-1]]?列表理解为您完成了这项工作。 [[0],[1],[2],...[xsize-1]]=[[i] for i in range(xsize)] 然后可以按如下方式调用vectorize函数(例如函数fs

import numpy as np

xsize=10
ysize=15

def fs(i,j,dif):
    return i+j

np.vectorize(fs)([[i] for i in range(xsize)],np.arange(ysize),0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多