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?

  • Python 'Listenindizes müssen Integer sein, nicht Tupel "Fehler
  • Hinzufügen eines einzelnen Elements zu Array in numpy
  • Umwandlung eines 2D-Numpy-Arrays in eine 2D-Numpy-Matrix
  • Länge der Artikel aus einer Liste finden
  • Wie kann ich verschiedene Arrays zurückgeben?
  • Wie kann ich eine Kopie eines 2D-Arrays in Python erstellen?
  • 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.