fügen Sie allen ungeraden oder geraden indizierten Elementen in numpy array ohne Schleifen eine Zahl hinzu

8

Sagen wir, Ihr numpy Array ist:

%Vor%

Sie können einfach tun:

  

A + .1

, um jedem Element numpy array

eine Zahl hinzuzufügen

Ich suche nach einer Möglichkeit, nur den ungeraden oder geraden indizierten Zahlen A[::2] +1 eine Zahl hinzuzufügen, während das gesamte Array intakt bleibt.

Ist es möglich, allen ungeraden oder geraden indizierten Elementen ohne Schleifen eine Zahl hinzuzufügen?

    
pyCthon 07.08.2012, 15:59
quelle

3 Antworten

16
%Vor%

Beachten Sie, dass dies A ändert. Wenn Sie A unmodified beibehalten möchten, kopieren Sie A first:

%Vor%     
unutbu 07.08.2012, 16:03
quelle
5

Zusätzlich zu vorherigen Antworten sollten Sie zur Änderung von Zahlen mit ungeraden Indizes A [1 :: 2] anstelle von A [:: 2]

verwenden     
Edward Ruchevits 07.08.2012 16:18
quelle
2

Etwas mit Listenverständnis könnte funktionieren.

%Vor%

Nur schnell und schmutzig mit einem Ternär. Funktioniert möglicherweise nicht in Ihrer Version von Python, kann mich nicht erinnern, mit welchen Versionen es arbeitet.

In Python 2.7.3 und Python 3.2.3 ist die Ausgabe identisch:

%Vor%     
DrGodCarl 07.08.2012 16:11
quelle

Tags und Links