2017-10-03 2 views
1

Was ist der einfachste Weg zu erweitern und füllen Sie ein Python-Array numpy? Zunächst wird die numpy Array ist:erweitern und füllen Sie numpy Array

[[1,3], [1,2], [1,5]]

nach dem Expandieren sollte das Array sein:

[[1,3,9,27], [1,2,4,8], [1,5,25,125]]

die neu hinzugefügte Spalte ist das Quadrat und Würfel geschnitten Wert der zweiten Spalte .

Danke!

Antwort

0

Sie müssen nur die 1 in jeder Zeile überspringen und dann Broadcasting verwenden, um das gewünschte kartesische Produkt zu erstellen.

import numpy as np 

a = np.array([[1,3], [1,2], [1,5]]) 
b = a[:, 1:] ** np.arange(4) 
print(b) 

Ausgang

[[ 1 3 9 27] 
[ 1 2 4 8] 
[ 1 5 25 125]] 
2

Scheibe die zweite Spalte die Abmessungen mit a[:,[1]] halten, führen die Netzoperationen nutzt broadcasting mit **[2,3], weil wir die Abmessungen gehalten hatte, und dann die Ausgabe als neue Spalten stapeln mit np.c_ (eine von vielen Möglichkeiten zu stapeln).

Daher ist die Umsetzung -

Beispielausgabe -

In [902]: np.c_[a,a[:,[1]]**[2,3]] 
Out[902]: 
array([[ 1, 3, 9, 27], 
     [ 1, 2, 4, 8], 
     [ 1, 5, 25, 125]]) 
+0

Sie sind die besten! –

Verwandte Themen