2013-05-26 2 views
0

Если у вас есть следующий код:Pass индекс элемента в Numpy векторизации

import numpy as np 

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

myVector = np.vectorize(myFunction) 
myVector(myArray, currentElementIndex) 
  • Как вы можете передать значение currentElementIndex к myFunction() в Numpy векторизации?

Заранее благодарен!

EDIT: Я не уверен, где я должен получить индекс текущего элемента, к которому применяется myFunction(). Я знаю, как передать элемент массива, но не индекс.

EDIT: Обновлено с фактическим кодом:

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 
+1

Что вы действительно хотите сделать? Где проблема? (Я не совсем понимаю ваш вопрос) – jorgeca

+0

Ну, я не совсем уверен, где я должен получить индекс текущего элемента, к которому применяется «myFunction()». Я знаю, как передать элемент массива, но не индекс. –

+0

Не могли бы вы показать нам, что вы делаете (минимальный рабочий пример) и что вы хотите? Как ваш код не дает вам элемент 'myFunction'? Это именно то, что он будет печатать. – jorgeca

ответ

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)] 
Смежные вопросы