2017-03-06 2 views
1

Vektorisieren Ich möchte Linspace zu einem Array machen. Genau wie folgt vor:Wie kann ich Linspace in numpy

a = np.array([2, 4, 6]) 
b = vectorize(np.array)(0, a, 5) 

ich etwas zurückgeben möchte, die wie folgt aussieht:

b = [[0, 0.5, 1, 1.5, 2] 
    [0, 1, 2, 3, 4] 
    [0, 1.5, 3, 4.5, 6]] 

Dies ist mein Code:

import numpy as np 
a = np.arange(1001) 
c = np.vectorize(np.linspace)(0, a, 101) 
print(c) 

Es zeigt, dass: Valueerror: Setzen eines Array-Element mit eine Sequenz. Gibt es irgendeine Methode, um dies in numpy ohne for-Schleife zu tun?

Antwort

2

bauen Sie Ihre eigenen:

def vlinspace(a, b, N, endpoint=True): 
    a, b = np.asanyarray(a), np.asanyarray(b) 
    return a[..., None] + (b-a)[..., None]/(N-endpoint) * np.arange(N) 
+0

Dank. Warum hast du np.asanyarray statt np.array benutzt? – jiangniao

+0

@jiangniao es zwingt keine Kopie und es 'NDarray' Unterklassen allein, so ist es am wenigsten invasiv. –

Verwandte Themen