Wie kann ich eine Numpy-Funktion erstellen, die ein Numpy-Array, ein Iterable oder einen Skalar akzeptiert?

Angenommen, ich habe Folgendes:

def incrementElements(x):
   return x+1

Ich möchte es jedoch so ändern, dass es entweder ein numpy-Array, ein iterables oder ein skalares Array annehmen und das Argument in ein numpy-Array umwandeln und 1 zu jedem Element hinzufügen kann.

Wie könnte ich das machen? Ich nehme an, ich könnte die Argumentationsklasse testen, aber das scheint eine schlechte Idee zu sein. Wenn ich das mache:

def incrementElements(x):
   return numpy.array(x)+1

Es funktioniert ordnungsgemäß auf Arrays oder Iterables, jedoch nicht auf Skalaren. Das Problem hier ist dasnumpy.array(x) for scalar x erzeugt ein seltsames Objekt, das in einem numpy-Array enthalten ist, aber kein "reales" Array ist. Wenn ich einen Skalar hinzufüge, wird das Ergebnis auf einen Skalar herabgestuft.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage