user1821176
user1821176

Reputation: 1191

Trying to interpolate over multiple arrays

I have an array of arrays:

x = [np.array([np.linspace(3000,7000, 1000.0)]), np.array([np.linspace(4000,8000, 1000.0)]), np.array([ np.linspace(2000,9000, 1000.0)])]

y = [np.array([np.linspace(10,200, 1000.0)]), np.array([np.linspace(20,200, 1000.0)]), np.array([np.linspace(30,200, 1000.0)]]

Such that for part in my x arrays between 6520 and 6620

xgrid=np.linspace(6520,6620, 1000.0)

I want to interpolate

ygrid= np.interp(np.array(xgrid), x, y)

I do not know how to adjust my code to correct for error (ValueError: setting an array element with a sequence)

Upvotes: 0

Views: 135

Answers (1)

oschoudhury
oschoudhury

Reputation: 1146

I get a different error when I apply your code, so I'll clean up some part:

x = np.asarray([np.linspace(3000, 7000, 1000.0), np.linspace(4000, 8000, 1000.0), np.linspace(2000, 9000, 1000.0)])
y = np.asarray([np.linspace(10, 200, 1000.0), np.linspace(20, 200, 1000.0), np.linspace(30, 200, 1000.0)])
xgrid = np.linspace(6520,6620, 1000.0)

since numpy.interp only accepts 1D objects:

ygrid = np.array([np.interp(xgrid, i, j) for i, j in zip(x, y)])

Upvotes: 1

Related Questions