Como posso fazer uma função numpy que aceita um array numpy, iterable ou escalar?
Suponha que eu tenha isto:
def incrementElements(x):
return x+1
mas eu quero modificá-lo para que ele possa usar um array numpy, iterable ou escalar, e promover o argumento para um array numpy e adicionar 1 a cada elemento.
Como eu pude fazer isso? Eu suponho que eu poderia testar a classe de argumentos, mas isso parece ser uma má ideia. Se eu fizer isso:
def incrementElements(x):
return numpy.array(x)+1
Ele funciona corretamente em matrizes ou iteráveis, mas não em escalares. O problema aqui é quenumpy.array(x)
para escalar x produz algum objeto estranho contido por um array numpy mas não é um array "real"; se eu adicionar um escalar a ele, o resultado será rebaixado para um escalar.