Broadcasting große Arrays in numpy Änderungen Ergebnis Typ

Ich versuche, ein numpy Array durch die Werte eines anderen zusammenzufassen. Die Lösung aus dieser Frage war sehr hilfreich und funktioniert in der Tat, wenn die Anzahl der einzigartigen Werte von x klein ist. Allerdings, wie ich die Anzahl der einzigartigen Werte von x erhöht einige ungerade Verhalten passiert:

In [1]: n = [1000, 10000, 100000] for i in n: x = np.array(range(i)) y = np.zeros(len(x)) y[x % 2 == 0] = 1 # unique values of x ux = np.unique(x)[..., np.newaxis] res = x[y==0]==ux print type(res) Out[1]: <type 'numpy.ndarray'> <type 'numpy.ndarray'> <type 'bool'> 

Sobald die Anzahl der eindeutigen x-Werte einen bestimmten Schwellenwert überschreitet, ist der aus der Sendung resultierende Typ ein Bool anstelle eines Arrays. Ist eine Obergrenze für die Größe eines Rundfunkbetriebs in numpy?

  • Gibt es eine Numpy-Funktion, um den ersten Index von etwas in einem Array zurückzugeben?
  • Speicherfehler mit Dask-Array
  • Sortieren Sie ein numpy Array nach 2. Spalte nur, wenn Werte in der 1. Spalte gleich sind
  • Was ist der Punkt der heterogenen Arrays?
  • Fixieren von Array-Indizes in Python
  • Füllen Sie ein multidimensionales Array effizient, die viele if else-Anweisungen haben
  • EDIT: Versionsinfo

     In [2]: np.__version__, sys.version Out[2]: ('1.8.0', '2.7.3 |EPD_free 7.3-1 (32-bit)| (default, Apr 12 2012, 14:30:37) [MSC v.1500 32 bit (Intel)]') 

    Python ist die beste Programmiersprache der Welt.