Python “努比本地人”;嵌套表示“相似”;结构

Python “努比本地人”;嵌套表示“相似”;结构,python,arrays,performance,numpy,vectorization,Python,Arrays,Performance,Numpy,Vectorization,我想在python中生成一个2×N数组,用于scipy.optimize.curve\u fit 我有一个两个独立变量的函数,存储为一维数组,数据存储在二维数组中curve\u fit要求将数据展平,这在data.ravel()中很容易实现 然而,这就是我用来生成2xN坐标值数组的方法: ordinate = np.array([[l,t] for l in length for t in time]).T 这很有效,但速度很慢。什么是(矢量化?)更快的方法 如果我答对了这个问题,那么您需要

我想在python中生成一个2×N数组,用于
scipy.optimize.curve\u fit

我有一个两个独立变量的函数,存储为一维数组,数据存储在二维数组中
curve\u fit
要求将数据展平,这在
data.ravel()
中很容易实现

然而,这就是我用来生成2xN坐标值数组的方法:

ordinate = np.array([[l,t] for l in length for t in time]).T 

这很有效,但速度很慢。什么是(矢量化?)更快的方法

如果我答对了这个问题,那么您需要将存储为1D数组的两个自变量组成2D网格。因此,同样,您可以使用-

样本运行-

In [149]: time
Out[149]: array([7, 2, 1, 9, 6])

In [150]: length
Out[150]: array([3, 5])

In [151]: ordinate = np.array([[l,t] for l in length for t in time]).T

In [152]: ordinate
Out[152]: 
array([[3, 3, 3, 3, 3, 5, 5, 5, 5, 5],
       [7, 2, 1, 9, 6, 7, 2, 1, 9, 6]])

In [153]: time2D,length2D = np.meshgrid(time,length)
     ...: ordinate_vectorized = np.row_stack((length2D.ravel(),time2D.ravel()))
     ...: 

In [154]: ordinate_vectorized
Out[154]: 
array([[3, 3, 3, 3, 3, 5, 5, 5, 5, 5],
       [7, 2, 1, 9, 6, 7, 2, 1, 9, 6]])

pv写了一篇文章。有了它,您可以使用
origin=cartesian([length,time])
np。meshgrid
是我找不到的函数。谢谢。@Excalable很乐意帮忙!
In [149]: time
Out[149]: array([7, 2, 1, 9, 6])

In [150]: length
Out[150]: array([3, 5])

In [151]: ordinate = np.array([[l,t] for l in length for t in time]).T

In [152]: ordinate
Out[152]: 
array([[3, 3, 3, 3, 3, 5, 5, 5, 5, 5],
       [7, 2, 1, 9, 6, 7, 2, 1, 9, 6]])

In [153]: time2D,length2D = np.meshgrid(time,length)
     ...: ordinate_vectorized = np.row_stack((length2D.ravel(),time2D.ravel()))
     ...: 

In [154]: ordinate_vectorized
Out[154]: 
array([[3, 3, 3, 3, 3, 5, 5, 5, 5, 5],
       [7, 2, 1, 9, 6, 7, 2, 1, 9, 6]])