2

如果您有以下代码:

import numpy as np

def myFunction(element, index):
    print element, index

myVector = np.vectorize(myFunction)
myVector(myArray, currentElementIndex)
  • 如何将currentElementIndex值传递给myFunction()Numpy 矢量化?

提前致谢 !

编辑:我不确定我应该在哪里获得myFunction()应用到的当前项目的索引。我知道如何传递数组元素,但不知道索引。

编辑:用实际代码更新:

import numpy as npy

def getHashValue(character, index):
    return (ord(character) - ord('a')) ** (index + 1)

def getNameHash(name):
    hashValue = getHashValue
    hashValue = npy.vectorize(hashValue)
    hashValue(shortName)
    return
4

1 回答 1

1

np.vectorize是 numpy 中的一个便利函数,它接受一个适用于标量值(“数字”)的函数,并输出一个适用于 numpy 数组的函数(及其所有特权,例如广播)。

在您的情况下,您实际上并不需要任何这些,因此使用列表理解enumerate正是您正在寻找的。我猜你的代码是为了做到这一点:

def getHashValue(character, index):
    return (ord(character) - ord('a')) ** (index + 1)

def getNameHash(name):
    return [getHashValue(c, i) for i, c in enumerate(name)]
于 2013-05-26T15:33:29.000 回答